android - 在牛轧糖上多次接收 FCM 通知

标签 android firebase firebase-cloud-messaging

我在我的应用中使用 Firebase 推送通知。但是,当我发送某个事件的通知时,我在 2-3 分钟后仅在 Nougat 设备 上多次收到通知。我在版本低于 Nougat 的设备上只收到一条通知。

我检查过服务器一次只发送一个通知。 我的应用程序 gradle 中存在以下依赖性。

compile `com.google.firebase:firebase-messaging:11.8.0`

这是 FCM 监听器的代码:

public class MyFcmListenerService extends FirebaseMessagingService {

    @Override
public void onMessageReceived(RemoteMessage remoteMessage) {

  }
}

在 list 文件中:

<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 )和 Manifest

(删除:

<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" />

)

还要确保您清理您的项目并重建它,以删除对 GCM 类的所有缓存引用。最后一部分花了我 2 个小时才搞清楚。 一个不错的技巧是查找所有 (⇧⌘F)“GCM”并查看您是否从生成的文件中获得命中。

关于android - 在牛轧糖上多次接收 FCM 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48785262/

相关文章:

ios - Firebase Crashlytics 不会在门户网站上显示任何问题

android - 添加/修改子项时的 Firebase 通知

firebase - Firebase 部署超时

java - 如何使用适配器位置将数据从 firebase 检索到新 Activity

android - 如何从 Android Studio 获取仪器 APK?

android - NestedScrollView 无法使用 match_parent 高度子项滚动

android - 如何设置 Android Studio 项目所需的最低 SDK Build Tools 版本?

android - 具有 Android + MIUI 和 setCustomSelectionActionModeCallback 的设备

android - React native 矢量图标不会在 Android 设备中显示

javascript - 如何唯一获取推送id