首页 文章

Android:订阅Firebase Cloud 消息传递(FCM)主题

提问于
浏览
14

根据Firebase cloud messaging documentation,用于订阅用户我需要调用的主题

FirebaseMessaging.getInstance().subscribeToTopic("news");
  • 在我的应用程序中,我需要所有用户订阅我的 Cloud 消息传递主题 . 由于返回值为 void ,问题是我如何理解订阅是否成功?

  • 每次我的应用程序启动时调用 subscribeToTopic 是不好的做法?

1 回答

  • 12

    1.我如何理解订阅是否成功?

    编辑:

    您现在可以通过添加 addOnSuccessListener() 来检查订阅是否成功

    FirebaseMessaging.getInstance().subscribeToTopic("news").addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Toast.makeText(getApplicationContext(),"Success",Toast.LENGTH_LONG).show();
            }
        });
    

    原版的:

    在订阅成功时收到的响应文档中没有明确提及 .
    但是,如果您需要强制所有用户订阅特定主题,则应在应用首次安装时调用subscribeToTopic . 这很可能会确保与互联网连接(因为它可能已经通过Play商店下载和安装)并且订阅成功 . 但是,如果您想确定,您还可以通过自己的App Server进行检查 . 如文档中所述:您可以利用Instance ID API从服务器端执行基本的主题管理任务 . 给定客户端应用程序实例的注册令牌,您可以执行以下操作:查找有关客户端应用程序实例的订阅的详细信息,包括每个主题名称和订阅日期 . 请参阅获取有关应用实例的信息
    检查注册令牌,如果他们没有成功地附加到您的主题,请向其发送通知,它将触发您的客户端应用程序调用subscribeToTopic .

    2.每次我的应用程序启动时调用subscribeToTopic是不好的做法?

    编辑:从评论部分添加它:订阅应用程序启动应该没问题 .

    谢谢@FrankvanPuffelen进行验证 . :)

相关问题