【问题标题】:How can I save a device Token using Cloud Functions (Javascript)如何使用 Cloud Functions (Javascript) 保存设备令牌
【发布时间】:2021-07-13 13:59:44
【问题描述】:

每当实时数据库通过 FCM 发生变化时,我已经成功推送通知,最终通过 Firebase Cloud Functions

但是我通过设置一个带有硬编码的设备令牌的常量来做到这一点:

const registrationToken = "yuYF4yF3nkj....." 

然后在我触发通知时添加它

return admin.messaging().sendToDevice(registrationToken, payload, options); 

我也尝试过使用context.instanceIdToken;within:

exports.pushNotification = functions.database .ref("....") .onWrite((change, context) => {
const TokenID = context.instanceIdToken;
console.log(TokenID); 

但它打印出:“未定义”

我怎样才能读取我设备的令牌而不是硬编码它,因为如果我要共享这个应用程序,我会假设每个设备的令牌都会不同。

【问题讨论】:

    标签: ios firebase push-notification google-cloud-functions firebase-cloud-messaging


    【解决方案1】:

    为此,您需要为设备订阅一个主题,以便 FCM 知道它需要向哪些设备发送通知。我建议您阅读此documentation 以了解有关如何操作的更多详细信息,但总结一下您需要:

    • 使用以下代码为您希望的设备订阅主题:

      Messaging.messaging().subscribe(toTopic: "YOUR_TOPIC_NAME")
      
    • 触发消息发送给在你的云函数中订阅你主题的每个人,你可以使用这个代码作为例子:

      var topic = 'YOUR_TOPIC_NAME';
      
      var message = {
          data: {
              text: 'hello world'
          },
          topic: topic
      };
      
      admin.messaging().send(message).then((response) => {
          console.log('Successfully sent message:', response);
      })
      .catch((error) => {
          console.log('Error sending message:', error);
      });
      

    【讨论】:

    • 你好@Crunchymind。任何进展?这是answer your question吗?
    • 这正是我所需要的,非常感谢。事实上,以这种方式划分用户类型会更好。 @WytrzymałyWiktor
    猜你喜欢
    • 2017-08-09
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2019-05-05
    • 2020-09-23
    • 2017-04-13
    • 1970-01-01
    相关资源
    最近更新 更多