14

firebase プッシュ通知をテストするための非常に単純な Android アプリを作成しましたが、1 つの通知を 2 回受け取りました。

これはマニフェスト サービスです。

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

これはアプリのグラドルです:

    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'
4

6 に答える 6

4

私にとっては、アプリが FCM を使用しているときに GCM を使用していたのはサードパーティの SDK でした。両方のサービスに登録すると、2 つの通知が届きます。

super.onMessageReceived(remoteMessage)(また、FirebaseMessagingService を呼び出していたため、3 番目の通知が表示されました:p

于 2016-09-13T10:12:07.497 に答える
1

受け入れられた答えは私にはうまくいきませんでした。以下はうまくいったものです:

アプリがフォアグラウンドまたはバックグラウンドにある場合でも、単一の通知のみが表示されるdata-messagesように、代わりに使用しました。display-messages

交換

{
      "to": "/topics/journal",
      "notification": {
        "title" : "title",
        "text": "data!",
        "icon": "ic_notification"
       }
}

{
  "to": "/topics/dev_journal",
   "data": {
       "text":"text",
       "title":"",
       "line1":"Journal",
       "line2":"刊物"
   }
} 

参考:firebaseでアプリがバックグラウンド時の通知の扱い方

于 2016-09-07T11:25:44.520 に答える