7
votes

Notifications de Firebase au premier plan

J'ai un problème avec les notifications push Firebase. Lorsque mon application est en arrière-plan, les notifications arrivent, mais lorsque mon application est au premier plan, je ne reçois pas de notifications, mais dans la console que la notification est affichée, cela signifie que la notification est ici, mais elle ne montre pas dans la barre de notification . Pourriez-vous m'aider? XXX


0 commentaires

3 Réponses :


3
votes

EDIT: strong>

Je viens de remarquer que Onmessagereceiveed () de FirebasemessagingService n'est pas invoqué (à partir de maintenant) lorsque vous envoyez des notifications de la console et votre application est au premier plan. Une solution est que vous pouvez utiliser API de Firebase pour envoyer des notifications push et elle invoquera OnMessagereceived () Quelle que soit l'application étant au premier plan ou en arrière-plan. p>

Si vous utilisez un corps "Notification" pour envoyer une notification push Ie p>

Map<String, String> map = remoteMessage.getData();
for (Map.Entry<String, String> entry : map.entrySet()) {
   Log.d(TAG, entry.getKey() + "/" + entry.getValue());
}


1 commentaires

Avez-vous remarqué que Sendnotification (RemoteMessage RemoteMessage) fonctionne avec RemoteMessage? Mais remotemessage.getnotification (). Getbody () renvoie en réalité une chaîne. Vous avez donné un mauvais conseil.



2
votes

Comme vous avez dit que vous recevez le message puisque vous constatez les messages du journal de la console afin que vous ayez géré correctement la pièce FCM et que le problème est probablement avec votre création de la notification.

Si vous regardez votre code de création de notification, il vous manque un couple de éléments requis pour créer une notification sur Android. Du Docs:

Un objet de notification doit contenir les éléments suivants:

  • une petite icône, définie par setsMallicon ()
  • Titre, défini par SetContentTitle ()
  • Texte detail, défini par SetContentText ()

    Je pense donc que si vous ajoutez ces éléments à votre création de notification, vous devez voir la notification dans la zone de notification.


2 commentaires

Oui, c'était un problème, merci mate. Juste une autre question, à qui définir SetContentTitle () lorsque mon backend m'envoie une notification et dans Json fixe le titre?


Les notifications affichées via un message de notification (JSON), sont totalement séparées de votre création et d'affichage de votre notification dans le code comme vous le faites ici. Si vous utilisez un message de notification et que votre application est en arrière-plan, elle sera affichée compte tenu du JSON spécifié. Sinon, vous obtiendrez le rappel OnMessagerecave et il appartient à votre code d'afficher une notification si c'est ce que vous voulez faire.



-1
votes

Intention intention = nouvelle intention (ceci, "votre classe"); inent.adddflags (intention.flag_activity_single_top); xxx


1 commentaires

Travailler pour bien pour moi