web-dev-qa-db-ja.com

アプリが閉じているとFirebaseプッシュ通知が受信されない

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

0
abir99

Firebaseは、デバイスがアプリを起動していて100%閉じていない場合にのみ通知を受信できるようです。つまり、バックキーだけでアプリを閉じて、アプリプロセスを強制終了していません。

いいえ。FCMは、Google Play開発者サービスとターゲットアプリケーションを備えたすべてのデバイスに送信されます。これがプッシュ通知と呼ばれる理由です。

アプリケーションは、実行中に通知を受け取り、オーバーライドする必要があるものを処理します

onMessageRecieved(RemoteMessage mes);

アプリが通知を受け取らないのには多くの理由が考えられます。それらのいくつかは次のようになります:

  • マニフェストに含まれていないメッセージングサービス

  • Playサービスが正しく構成されていません。または電話に存在しません。

  • レイテンシが高くなることはまれです。作曲してから2〜3分かかることもあるのに気づきました。

  • SHA1フィンガープリントがコンソールに登録されていないか、更新されたgoogle-services.jsonがソースに存在しません。

  • アプリをアンインストールして再インストールします。そのため、トークンの再生成が行われる場合があります。

メッセージングを開始するには、このリンクに従ってください。

https://firebase.google.com/docs/cloud-messaging/Android/client

0
coder3101

firebaseコンソールから送信する場合、通知メッセージが送信されるため、アプリが閉じられた場合に受信されない場合は、コンソールが実行しないデータペイロードを含むメッセージを送信する必要があります。

https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

0
tyczj