我的数据库的结构如下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构建功能。您将需要阅读documentation on Firetore triggers来学习如何编写它们。
关于javascript - 写入数据库时未触发Firebase函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61111146/