我在应用程序中使用的firebase推动通知。但是,当我向某些事件发送通知时,仅在 Nougat Devices 上,我会多次收到通知的多次。我在设备上只收到一个比牛轧糖更低的通知。
我检查了服务器一次仅发送单个通知。我的应用程序gradle的依赖性低于
compile `com.google.firebase:firebase-messaging:11.8.0`
这是FCM侦听器的代码:
public class MyFcmListenerService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
}
}
在清单文件中:
<service android:name="com.myApp.test.fcm.MyFcmListenerService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
当我尝试从旧的GCM迁移到新FCM时,我开始发生这种情况。您需要确保删除所有与GCM相关的代码,包括Gradle(删除com.google.android.gms:play-services-gcm
(和清单
(删除:
<uses-permission android:name="mypackage.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
android:name="mypackage.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
(
还要确保您清洁您的项目和重建 IT,以删除对GCM类的任何缓存引用。最后一部分花了我2个小时才能弄清楚。一个不错的技巧可能是查找所有(⇧⌘F(" GCM",看看您是否从生成的文件中获得命中。
我在我身上发生了同样的事情,我只尝试了所有事物
然后,我意识到我们从启动到结束时都存储了Android设备的所有FCM令牌,而无需验证或删除它们
我在我的服务器的DB
中插入了所有FCM令牌并重新插入了我的应用程序中插入了新的单数令牌它运行良好,我认为FCM甚至在跨安装,多个APK和多个APK调试会话
发出新的代币之前将其无效。尝试仅发送至1个令牌,还可以清洁构建并重新安装您的应用