我写了一个非常简单的
Android应用来测试firebase推送通知,我收到两次通知.
这是清单服务:
<service android:name="com.google.firebase.messaging.FirebaseMessagingService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service> <service android:name="com.google.firebase.iid.FirebaseInstanceIdService"> <intent-filter> <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> </intent-filter> </service>
这是应用程序gradle:
compile 'com.google.android.gms:play-services:9.0.0' compile 'com.google.firebase:firebase-core:9.0.0' compile 'com.google.firebase:firebase-messaging:9.0.0' } apply plugin: 'com.google.gms.google-services'
这是项目级别的gradle:
classpath 'com.google.gms:google-services:3.0.0'
解决方法
看起来您正在使用com.google.android.gms:play-services:9.0.0(包括play-services-gcm)和com.google.firebase:firebase-messaging:9.0.0
来自firebase-massaging的FCM会自动注册一个实例ID令牌(设备ID),因此如果您有在您的应用中注册令牌的逻辑,则可能是您要注册两次.这可能会导致您收到多个通知.更一般地说,虽然你不应该在同一个应用程序中使用FCM和GCM,正是出于这个原因.因此,如果您打算使用FCM,则应从应用中删除GCM.
此外,使用播放服务包括所有play-services-x API,如play-services-gcm和play-services-drive等.因此,请始终使用分割库,如play-services-x而不仅仅是播放服务.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。