【问题标题】:How to subscribe to a topic in firebase cloud messaging from device如何从设备订阅 Firebase 云消息中的主题
【发布时间】:2021-09-22 18:00:03
【问题描述】:

如何在设备上订阅 firebase 上的主题, 以前它曾经很简单

 FirebaseMessaging.getInstance().subscribeToTopic(topic)
        .addOnCompleteListener { task ->
}

现在函数变成了

public TopicManagementResponse subscribeToTopic(@NonNull List<String> registrationTokens,
      @NonNull String topic) throws FirebaseMessagingException {
    return subscribeOp(registrationTokens, topic).call();
  }

其中有一个带有注册令牌的额外参数... 如何使用最新代码从设备订阅主题??

【问题讨论】:

  • 我不确定你从哪里得到第二个函数调用,但文档仍然显示 FirebaseMessaging.getInstance().subscribeToTopic("weather"): firebase.google.com/docs/cloud-messaging/android/…
  • 我只是 crtl+clicked 进入函数...无论如何让我检查我的依赖关系并回复你
  • 我使用的是 firebase bom 28.4.1,它看起来像 ibb.co/yss8zgd,这是 FirebaseMessaging.java 类中的 subscribetoTopicMethod ibb.co/1TLZR4s 请帮助
  • 这个重载需要一个令牌列表,并且是 Admin SDK 的一部分:firebase.google.com/docs/reference/admin/java/reference/com/… 您不应该在您的 Android 应用程序中使用该 SDK,因为它会带来严重的安全风险。而是使用我在第一条评论中提供的链接,使用适用于 Android 的常规 SDK。

标签: android firebase firebase-cloud-messaging


【解决方案1】:

您似乎正在将 Admin SDK 用于服务器端 Java 代码。此 SDK 只能在受信任的环境中使用,例如您的开发机器、您控制的服务器或 Cloud Functions。在您的客户端 Android 代码中使用 Admin SDK 存在安全风险,因为它允许恶意用户获得对您的 Firebase 项目的管理访问权限。

解决方案是遵循subscribing to a topic 上的 Android 开发人员文档。当您这样做时,代码应如下所示:

FirebaseMessaging.getInstance().subscribeToTopic("weather")

【讨论】:

  • 谢谢弗兰克,现在一切正常..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
相关资源
最近更新 更多