项目更新后,我希望用户收到通知。我尝试了各种东西,但感觉好像快用完了,但没有收到任何通知。
我在云函数中做了一个似乎可以正常工作的更新功能(项目更新时会发生某种情况,正如我在日志中看到的那样)。我已尝试订阅商品ID和商品,但没有区别。
Future<List<TaskList>> getItems() async{
List <Item> Items = [];
var snap = await Firestore.instance
.collection('Items')
.getDocuments();
for (var doc in snap.documents) {
Item item = new Item.fromDocument(doc);
Items.add(item);
FirebaseMessaging().subscribeToTopic(item.postID);
}
return tasklists;
}
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
const db = admin.firestore();
const fcm = admin.messaging();
exports.sendToTopic = functions.firestore
.document('items/{itemID}')
.onUpdate((change, context) => {
const item = change.after.data();
const payload = {
notification: {
title: item.name,
body: `${item.name} has been updated!`
}
};
return fcm.sendToTopic('items', payload);
});
我也有使用Firebase消息传递扑打通知的初始化程序。 我没有错误,更新项目时什么也没发生...
答案 0 :(得分:0)
调试的第一步始终是尝试找出问题所在。现在,您不知道问题出在您的Flutter应用中还是在Cloud Functions代码中。
如果您send a message to the same topic from the Firebase console,到达了吗?如果是这样,您就知道问题出在服务器端代码中,您可以从公式中删除Flutter代码。如果消息没有到达,请首先专注于使之工作,然后再转到Cloud Functions代码。
通过这种方式隔离问题,可以减少需要考虑的范围。这也是确保我们可以在Stack Overflow上提供帮助的最佳方法,因为我们必须考虑较少的潜在问题。有关更多信息,我强烈建议您阅读how to create a minimal, complete, verifiable example,其中介绍了与上述内容类似的内容,以及有关如何在此处获得最佳帮助的更多信息。