【问题标题】:Why am I receiving messages from multiple FCM (Firebase Cloud Messaging) projects in my ionic 3 app?为什么我在 ionic 3 应用程序中收到来自多个 FCM(Firebase 云消息传递)项目的消息?
【发布时间】:2018-07-21 05:21:34
【问题描述】:

我在 FCM 中设置了 2 个项目 - MyAppCommsLive 和 MyAppCommsTest。

在每个项目中,我都将我的应用 com.mycompany.myapp 添加为 Android 应用。

在我的 ionic 3 应用程序中,我编译了 2 个版本,它们指向我的 REST api 的 2 个不同实例。我保持应用程序 ID 相同,但所有更改都是 API 的 URL。所以,app id 是 com.mycompany.myapp。

当我编译测试版本时,我包含一个特定的 google-services.json 文件,其中包含 MyAppCommsTest FCM 项目的密钥。同样,当我编译实时版本时,我会使用其各自的 google-services.json 文件。

但是,如果我使用 MyAppCommsTest API 密钥发送推送通知,测试设备和实时设备都会收到通知。

现在我发送的通知发送到顶部“/topics/all”,因为它们是全局通知。我试图避免的是无意中向实时设备发送消息。

我在这里遗漏了什么,应该发生这种情况吗?

【问题讨论】:

  • 我也面临同样的问题。你能在不改变包名的情况下解决它吗?

标签: ionic3 firebase-cloud-messaging cordova-plugin-fcm


【解决方案1】:

首先,我建议您更改一个应用程序包名称,将.debug 附加到它上面。如果这样做,您将需要在 Firebase 上重新配置并再次下载 json 文件。

其次,您可能会发现您的 json 文件包含两个应用的属性,具体取决于您在 Firebase 中声明它们的方式。通过手动编辑文件,确保每个应用的 json 仅包含该应用的属性。

【讨论】:

  • 我已经通过更改包名来实现它,但我想暂时保持包名相同。我已经仔细检查了应用程序的 json 文件,它只包含一个客户端信息。更重要的是,当我从每个项目各自的消息控制台发送消息时,它会按预期工作。
【解决方案2】:

按照@Richard-Le-Mesurier 的建议,我仔细检查了所有设置,但问题一直存在。问题是,即使我正在重新编译应用程序并使用 adb 将其部署到设备上,我并没有卸载以前的版本。

在部署之间卸载后,我不再遇到我遇到的“交叉线”。

【讨论】:

  • 很有趣,也许是关于 Firebase 如何将应用程序注册到 Google Play 服务。通过在顶部安装另一个副本,他们可能无法取消注册。
  • 我的想法也是如此。感谢您的建议。
猜你喜欢
  • 2020-07-28
  • 2017-01-25
  • 2022-01-09
  • 2021-01-19
  • 1970-01-01
  • 2017-02-25
  • 2021-01-29
相关资源
最近更新 更多