2016-09-06 25 views
1

firebaseプッシュ通知の動作に関するドキュメントをよく読んでいます。私のアプリがバックグラウンドではあるが、アプリケーションがフォアグラウンドになったときにコールバックするonMessageReceivedを起動していないときに、システムトレイで通知を見ることができます。私は、メッセージが私のアプリで受信されたログを見ることができます。私は、データペイロードとアプリケーションサーバーからのデータペイロードなしで呼び出すことを試みました。私のアプリケーションサーバーは、fcm apiを起動するためにPHPスクリプトを使用しています。以下は、私は私のAndroidアプリアプリケーションがフォアグラウンドのときにFirebase onMessageReceivedが呼び出されない

<service 
    android:name="service.MyFirebaseMessagingService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
    </intent-filter> 
</service> 

<service 
    android:name="service.MyFirebaseInstanceIdService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
    </intent-filter> 
</service> 
+0

データペイロードで試したことは、PHPコードのJSONの 'notification'フィールドを' data'に置き換えたことを意味しますか?あなたのアプリがフォアグラウンドにあるときにonMessageReceivedメソッドが呼び出されていない場合でもですか? – GeorgeLBA

+0

あなたのAndroidManifest.xmlに問題があると思われます。 "service.MyFirebaseInstanceIdService"を "。service.myFirebaseInstanceIdService"に置き換えてください(最初の点に注意してください)。 https://developer.android.com/guide/topics/manifest/service-element.htmlの "android:name"セクションを参照してください。 –

+0

@GeorgeLBA通知とデータのペイロードを一緒に送信しようとしました。データペイロードの有無にかかわらず、アプリケーションがフォアグラウンドにあるときにonMessageReceivedは呼び出されません。 FirebaseMessagingService内でメッセージが受信されたログを確認できます。 – LvN

答えて

3

私は同じ問題を抱えていた中で私が使用しているサービスを以下に示します

​​

使用しているPHPスクリプトです。私の問題は、<service></service> タグがマニフェストファイルの<application></application>タグの外側にあることでした。 <application></application>タグを入力すると、問題は解決されました。

+0

それは私のためにそれを修正した。ありがとう@ジャマール –

+0

私は本当にそれについて夢中になりました、多くの時間をチェックし、異なるエミュレータに切り替えました。しかし、私の一日を救ってくれてありがとう。 – Hayra

関連する問題