본문 바로가기
iOS(Swift)

Firebase functions 에서 firestore 데이터 읽어와서 푸시 노티피케이션 보내기 (FCM 푸시알림보내기)

by xavi2019 2019. 6. 28.

파이어베이스의 Cloud Functions 에서 FireStore의 데이터를 읽어와서 푸시 알림 보내기 

const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);

var db = admin.firestore();


// 문자가 온다면
exports.receiveSMS = functions.firestore
    .document('bankData/{bankDataId}')
    // .document('users/{userId}')
    .onCreate((change, context) => {
    const newValue = change.data(); 


    const payload = {
        notification: {
          title: 'SMS',
          body: `새로운 무통장 입금이 있습니다.`
        }
      };

    var tokens = [];

    // FireStore 에서 데이터 읽어오기
    db.collection('users').get().then((snapshot) => {
        snapshot.forEach((doc) => {
            // console.log(doc.id);
            // console.log(doc.data().token);
            // console.log(doc.data().created);
            tokens.push(doc.data().token);
        });

        console.log(tokens);

        if (tokens.length > 0 ){
            admin.messaging().sendToDevice(tokens, payload)
            .then(function(response) {
                // See the MessagingDevicesResponse reference documentation for
                // the contents of response.
                console.log('Successfully sent message:', response);
            })
            .catch(function(error) {
                console.log('Error sending message:', error);
            });
            
        }
        
    })
    .catch((err) => {
        console.log('Error getting documents', err);
        return false;
    });


});

 

댓글