Firebase 消息传递 - 如何在 Android 中请求令牌时设置发件人 ID?

Firebase messaging - how to set Sender Id when requesting a token in Android?

在 Android 中请求 Firebase 消息传递注册令牌时如何设置发件人 ID?

我需要这个,因为我必须为应用程序和发送通知的服务器设置不同的 FB 项目。它被描述为 here,但我认为该文档缺少某些内容。搜索 Whosebug 也会得到不是最新的答案。找不到使用最新版本 API.

的方法

我建议阅读 controlling your Firebase registration/instance 它不仅解释了如何使用自定义 options/name 手动初始化您自己的 firebase,还解释了 firebase 如何使用 Google 插件自动初始化自己和 json 文件,这将帮助您更好地了解最适合您的解决方案。

本质上,您需要在 Android 应用程序应用程序 class 中手动初始化您的 Firebase 服务并提供一个 FirebaseOptions.Builder class to the Firebase.initializeApp,它允许您调用 setGcmSenderId 等等像 api 键等

这位官方 link 显示 how to configure mutliple projects in your application 这也可能是一个选项。

发件人 ID 和项目详细信息使用配置文件“google-services.json”设置,它从您的 android 项目的应用程序文件夹中读取此文件。

要在 firebase 控制台中为您的 firebase 项目获取 google-services.json,请打开项目设置和 select 您的应用并下载文件并将其放入您的 android 项目。

我想继续使用 google-services.json,所以我不想进行手动初始化。然后,当我阅读 Google Services Gradle 插件的工作原理时,我将使用文件中的值进行手动初始化 - 更多信息请参见:https://developers.google.com/android/guides/google-services-plugin#processing_the_json_file

最后,我没有更改代码中的任何内容,只是更改了 google-services.json 中的 project_info/project_number。它用于 gcm_defaultSenderId。现在一切看起来都很好。希望它不用于任何其他用途。我们只使用 FCM,所以我认为没问题。我不喜欢这个,但它会做。