更新项目时推送通知

时间:2019-06-23 10:23:13

标签: firebase flutter firebase-cloud-messaging

项目更新后,我希望用户收到通知。我尝试了各种东西,但感觉好像快用完了,但没有收到任何通知。

我在云函数中做了一个似乎可以正常工作的更新功能(项目更新时会发生某种情况,正如我在日志中看到的那样)。我已尝试订阅商品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消息传递扑打通知的初始化程序。 我没有错误,更新项目时什么也没发生...

1 个答案:

答案 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,其中介绍了与上述内容类似的内容,以及有关如何在此处获得最佳帮助的更多信息。