我的数据库的结构如下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时,严格来说就是这个问题。
答案 0 :(得分:1)
当您说“ Collection(“ Message”)。Document(“ message”)“向我暗示您正在使用Firestore作为数据库时。但是,您的功能是针对实时数据库的更改,这是完全不同的事情。 functions.database
为实时数据库构建功能。 functions.firestore
为Firestore构建功能。您将需要阅读documentation on Firetore triggers来学习如何编写它们。