从Firestore推送通知

时间:2019-01-18 01:00:06

标签: javascript firebase google-cloud-firestore google-cloud-functions firebase-admin

当Cloud Firestore数据库中的数据更改时,我需要发送通知。我有这个字段enter image description here

我需要获取所有用户令牌并发送推送通知。我有一个代码,但是如果我知道用户名是我的代码,这只会给我一个令牌:

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

exports.useWildcard = functions.firestore
    .document('notification/{id}')
    .onWrite((change, context) => {

        const payload = {
            notification: {
                title: 'Message from Cloud',
                body: 'This is your body',
                badge: '1',
                sound: 'default'
            }
        };

        admin.firestore().collection('notification').doc('fcm-token').get().then(doc => {
            console.log("Token: " + doc.data().user1.token);
        });

    });

1 个答案:

答案 0 :(得分:0)

要遍历文档中的所有用户:

admin.firestore().collection('notification').doc('fcm-token').get().then(doc => {
  let data = doc.data();
  Object.keys(data).forEach((user) {
    console.log("Token: " + data[user].token);
  });
});

但是,正如Doug所说:将所有用户的令牌存储在一个文档中,在某些时候注定会成为可伸缩性问题。