javascript - 来自 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);
});
});
解决方案
要遍历文档中的所有用户:
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 评论的那样:将所有用户的令牌存储在单个文档中势必会在某些时候成为可扩展性问题。
推荐阅读
- javascript - JQuery click() - 超出最大调用堆栈大小
- javascript - 解决承诺,仍然是未定义的
- bazel - 使用一组特定数据构建 docker SQL Server 的映像
- javascript - 为什么部分功能不运行?
- swift - 如何在沙箱外将数据写入 /usr/libexec/cups/filter/
- ruby - Jekyll 是否提供了一种为整个文件夹或图像创建永久链接的方法?
- javascript - 嵌套 For 循环混淆
- javascript - 单击后如何将div中的元素移动到第一个位置
- r - lag() 没有拾取上一行中的整数值
- php - 集成测试文件上传