首页 > 解决方案 > 来自 Firestore 的推送通知

问题描述

当我的 Cloud Firestore 数据库中的数据发生变化时,我需要发送通知。我有这个领域在此处输入图像描述

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

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);
        });

    });

标签: javascriptfirebasegoogle-cloud-firestoregoogle-cloud-functionsfirebase-admin

解决方案


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

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 评论的那样:将所有用户的令牌存储在单个文档中势必会在某些时候成为可扩展性问题。


推荐阅读