Firebase消息:通过云功能向所有应用程序用户发送数据消息



如何向应用程序的所有用户发送消息
使用web GUI,可以向应用程序的所有用户发送通知消息,所以我认为对某个功能和数据消息(或至少对通知消息(也可以对某个函数执行同样的操作,但我找不到方法。

我的尝试

我试着通过调用为所有设备订阅一个主题

FirebaseMessaging.getInstance().subscribeToTopic("all");

在我的FirebaseMessagingServiceonCreate事件中,然后发送一条带有云功能的消息:

exports.sendMessage = functions.database.ref("/messages/{meta}")
.onCreate((snapshot, context) => {
const message = snapshot._data;
console.log("msg", message["title"]);
// logs the correct data, therefore the event triggers
const payload = {
data: {
title: message["title"]
/* blah blah */
},
topic: "all"
}
admin.database().ref("/messages/" + context.params.meta).remove()
return admin.messaging().send(payload)
})

但是onMessageReceived不会触发(不像我使用GUI发送通知消息那样(
这种方法在任何方面都可行吗?我错过了什么?

我相信您唯一需要更改的部分就是结尾。这里不需要这个部件admin.database().ref("/messages/" + context.params.meta).remove()

对于消息传递,您的代码需要看起来像下面的示例:

// Send a message to devices subscribed to the provided topic.
admin.messaging().send(payload)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});

你需要使用一个catch来管理错误——这样你就可以可视化可能导致你的问题的原因。您可以在此文档中找到更多信息:向主题发送消息。

除此之外,我发现了这个不错的存储库,你可以在这里访问它,其中有一些示例和更多的代码示例,介绍如何将云函数与FCM一起使用。

如果这些信息对你有帮助,请告诉我!

相关内容

  • 没有找到相关文章

最新更新