首页 > 解决方案 > 从 REST API 发送时,Android 设备会收到两次 Firebase 通知

问题描述

我有一个使用 FCM 获取通知的 android 应用程序。我正在使用这个版本:

implementation "com.google.firebase:firebase-analytics-ktx:17.4.3"
implementation "com.google.firebase:firebase-inappmessaging-display-ktx:19.0.7"
implementation "com.google.firebase:firebase-messaging:20.2.0"

我最近遇到的问题是我试图通过 REST API 调用用我自己的后端服务器发送推送通知。我注意到对于每一个 api 调用,android 设备都会收到两次通知。

所以我检查了这个问题:Firebase send push notification 两次,我注意到就像Tom Bevelander的回答一样,我有一个使用 GCM 的第三方库,当我从项目中删除该库时,问题已解决。

所以我必须强迫我的用户更新应用程序。但我真的不想要这种方法。我看到的是,在以前的版本(包含 GCM 的应用程序)上,当我使用 Firebase 面板本身测试推送通知时,一切正常,设备会收到单一通知。但是通过 api 调用,设备会收到重复的通知。这种方法有什么区别?如何找出 FirebasePanel 背后发生的事情?这样我就调用了面板使用的同一个 api?我测试过的端点是这样的:

https://fcm.googleapis.com/fcm/send

和这个:

https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send

标签: androidfirebasepush-notificationfirebase-cloud-messaginggoogle-cloud-messaging

解决方案


兄弟可能会支持设备令牌可能是重复的,就像两个用户从同一设备登录并且两个用户设备令牌相同,并且服务器通过基于设备令牌的通知。所以如果他两次找到相同的令牌,它会通过两次通知或更多的。


推荐阅读