javascript - 写入数据库时未触发 Firebase 功能
问题描述
我的数据库结构如下 Collection("Message").Document("message")
但实际上,我希望在添加文档时监控数据库主集合中的任何更改。我添加了消息文档,因为我认为可能没有调用该函数,因为我的文档是自动生成的。然而,问题依然存在……
仅作为背景,我是一名 iOS 开发人员,所以也许我在这里做错了什么:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.sendPushNotifications = functions.database.ref('/Messages/{message}').onCreate((snapshot,context) => {
console.log(snapshot);
console.log(context);
var topic = "/topics/sentMessages";
var payload = {
data: {
message : 'You recieved a new message!'
}
}
return admin.messaging().sendToTopic(topic,payload).then((response) => {
return response;
})
})
对于其他背景:应用程序在使用控制台时可以很好地接收推送通知,无论是直接发送到测试设备还是使用主题。这个问题严格来说是在写入firebase Firestore时......
解决方案
当您说“Collection("Message").Document("message")”时,向我表明您正在使用 Firestore 作为数据库。但是,您的功能是针对实时数据库的更改,这是完全不同的事情。 functions.database
为实时数据库构建功能。 functions.firestore
为 Firestore 构建函数。您将需要阅读有关 Firetore 触发器的文档以了解如何编写它们。
推荐阅读
- angular - 无法以角度读取未定义的属性(读取“页面”)
- java - 绘图不一致(MPA Android Line Cubic Chart)
- python - Pygame 玩家在击中另一个 obj 时跳回落下
- flutter - Agora:如何在 Agora Flutter 中与主机用户广播视频
- elixir - 如何在 elixir phoenix 的 eex 模板中使用“with”语句
- arangodb - 在常规过滤查询中使用“COUNT INTO 长度”或聚合函数
- r - Xaringan 和 RMarkdown 的参考书目和引文
- gis - 如何找到全球所有地区的边界框数据?
- reactjs - Firebase/firestore 无法访问 Cloud Firestore 后端
- flutter - 如果文本中的文本很长,如overflow.ellipse,如何修剪textformfield中的文本?