Firebase Cloud Messaging 是否依赖于包名?

Does Firebase Cloud Messaging depend on the package name?

我想知道在 Firebase 项目控制台上定义的包名称是否与 Firebase 云消息的成功传递密切相关,或者它只是创建 google-services.json 文件的助手。

在 Firebase 控制台上,一旦创建就无法重命名。

在我的例子中,我在 Firebase 控制台创建了一个项目,错误地命名为 son.example.firecm 而不是 com .example.firecm 在我的 Android Studio 项目中定义。

我的 Android 项目没有编译导致拼写错误 google-services.json。

一旦将包名称重命名为 com.example.firecm,它会编译但不确定它是否会接收 Firebase 云消息或不会导致 Android Studio 项目中的 Firebase 控制台项目包定义不同。

拥有正确的包名称对于多种服务很重要,但对于 FCM 而言并非如此,除了在 google-services.json 中找到它之外。 FCM 使用项目编号来识别应用程序,它将从 JSON 文件中读取。

最好的做法是将一个新的 Android 应用程序连接到您的 Firebase 项目并使用正确的包名称,然后下载更新的 google-services.json。连接其他包名称不会有什么坏处(一旦控制台允许删除连接的应用程序,您应该能够将其删除)。

好吧,我对此做了进一步的研究。

我发现如果 Firebase 控制台上定义的包名称与 Gradle 和 APP 清单上定义的包名称不相同,则该应用程序 不会 能够接收从 Firebase 控制台发送的通知。

我猜在某种程度上,包名必须匹配是合乎逻辑的,以便 Android 一旦通知到达就午餐正确的应用程序。

总而言之,必须两个名称都匹配。

请大家自行测试,关注包名以确保项目成功。