私はFirebaseプッシュ通知をテストしていて、Firebase composerパネルから通知を送信しています。そして、アプリ情報パネルからアプリプロセスを閉じると、送信されたプッシュ通知がデバイス。アプリをもう一度起動しても、通知は失われ、受信されません。
私もこれを試しました:
アプリのプロセスを閉じます->デバイスをシャットダウンします->デバイスの電源を入れます->通知を送信します...そして通知は受信されません!
Firebaseは、デバイスがアプリを起動していて100%閉じていない場合にのみ通知を受信できるようです。つまり、バックキーだけでアプリを閉じて、アプリプロセスを強制終了していません。
これはどのようにして可能ですか?アプリが閉じられていても、firebaseは通知を受け取る必要があると考えられます。
私はNexus 5X Android 8.0でテストしており、Firebase Push Notifications
の最新バージョンを使用しています。
遅くなって申し訳ありませんが、「解決策」として選択された回答がないため、この問題が発生する次のユーザーに役立つことを願っています。
サービスを正しく設定すると、これはアプリが閉じていても機能します。それは、FirebaseメッセージはGoogle Play開発者サービスで移動するため、アプリを閉じることはサービスと関係がないためです。
最初は、通知は来ませんでした。デバイス設定で検索したところ、アプリの省エネシステムがアクティブ(クローズ時にスタックから削除された)であることがわかりました。通知送信されましたが、アプリは取ることができませんでしたそしてこれらを表示します。
無効化オプションの後、何度もテストしましたが、アプリが完全に閉じていると、通知が2〜3分遅れて送信されることがあります。時にはそれは5分に触れます。あなたは辛抱強くなければなりませんそれは来るでしょう!
代わりに、単に戻るボタンでアプリを開いたり閉じたりすると、数秒で通知が届きます。
JavaコードにFirebaseサービスを追加しましたか?これがリンクです firebase/quickstart-Android
これらの3 JavaファイルをJavaフォルダに追加し、それらのサービス名をAndroidManifest.xml
Firebaseは、デバイスがアプリを起動していて100%閉じていない場合にのみ通知を受信できるようです。つまり、バックキーだけでアプリを閉じて、アプリプロセスを強制終了していません。
いいえ。FCMは、Google Play開発者サービスとターゲットアプリケーションを備えたすべてのデバイスに送信されます。これがプッシュ通知と呼ばれる理由です。
アプリケーションは、実行中に通知を受け取り、オーバーライドする必要があるものを処理します
onMessageRecieved(RemoteMessage mes);
アプリが通知を受け取らないのには多くの理由が考えられます。それらのいくつかは次のようになります:
マニフェストに含まれていないメッセージングサービス
Playサービスが正しく構成されていません。または電話に存在しません。
レイテンシが高くなることはまれです。作曲してから2〜3分かかることもあるのに気づきました。
SHA1フィンガープリントがコンソールに登録されていないか、更新されたgoogle-services.jsonがソースに存在しません。
アプリをアンインストールして再インストールします。そのため、トークンの再生成が行われる場合があります。
メッセージングを開始するには、このリンクに従ってください。
https://firebase.google.com/docs/cloud-messaging/Android/client
firebaseコンソールから送信する場合、通知メッセージが送信されるため、アプリが閉じられた場合に受信されない場合は、コンソールが実行しないデータペイロードを含むメッセージを送信する必要があります。
https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages