【问题标题】:How can I send notifications to every device using Firebase Functions?如何使用 Firebase Functions 向每台设备发送通知?
【发布时间】:2017-12-03 16:37:33
【问题描述】:

您好...我正在制作一个简单的待办事项应用程序,供家人使用。

我正在使用 firebase 存储“待办事项”,现在我正在存储唯一键,而在其中我只存储待办事项标题(itemName)

我正在尝试在发生任何变化时向我的每个家庭成员发送通知...

exports.sendFollowerNotification = functions.database.ref(`/todo-list/{key}/{itemName}`).onWrite(event => {

我正在关注:https://github.com/firebase/functions-samples/blob/master/fcm-notifications/functions/index.js

在那个文件中说我需要“获取设备通知令牌列表”..

const getDeviceTokensPromise = admin.database().ref(`/shopping-list/${key}/notificationTokens`).once('value');

我不明白如何访问这些令牌,或者是否应该创建它们 - 如果应该,如何创建?

我没有使用身份验证,因为这个应用程序是私有的,只能安装在 5 台设备上。因此,当您打开应用程序时,您将拥有来自 firebase 的完全读写权限。

如何向我的每个家庭成员发送通知?

【问题讨论】:

    标签: firebase firebase-realtime-database firebase-cloud-messaging firebase-notifications


    【解决方案1】:

    您需要在这五台设备上都使用 Firebase Cloud Messaging SDK。因此,如果您使用的是 Android,请按照 Set Up a Firebase Cloud Messaging Client App on Android 的说明进行操作。添加 SDK 后,您可以Access the device registration token,然后您可以send to the server

    您正在使用的 Cloud Functions 示例假定您从 Android 应用将令牌写入 Firebase 数据库,然后 Cloud Functions 脚本可以从中读取它们并发送通知。

    甚至还有一个方便的web app included in the Cloud Functions sample 您一直在关注它,它正是您需要在每个客户端中执行的操作。如果您正在为您的五台设备构建 Web 客户端,则可以直接使用此示例,否则您必须将逻辑转换为您的目标平台。

    【讨论】:

      【解决方案2】:

      我不确定 FMC 与其他 Firebase 产品的集成,但在 FCM 正常实施中,您可以选择向 topics 发送通知。

      然后在设备端,当应用启动时,您使用 FCM sdk 为其订阅主题。

      通过这种方式,您可以避免管理设备的令牌 ID。所有订阅该主题的设备都会收到该主题的消息。

      Reference dox

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 2020-03-21
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多