SQLite
 sql >> Base de données >  >> RDS >> SQLite

Impossible d'insérer un enregistrement dans la base de données SQLite à partir du service de messagerie Firebase lorsque l'application est en arrière-plan ou à l'état fermé

Les notifications seront envoyées au onMessageReceived de votre application uniquement lorsque l'application est au premier plan. Lorsque votre application est en arrière-plan ou ne s'exécute pas, le système gère la notification et l'affiche dans la barre d'état système.

La documentation Firebase l'explique comme suit :

Message de notification - FCM affiche automatiquement le message sur les appareils des utilisateurs finaux au nom de l'application cliente. Les messages de notification ont un ensemble prédéfini de clés visibles par l'utilisateur.

Message de données - L'application client est responsable du traitement des messages de données. Les messages de données n'ont que des paires clé-valeur personnalisées.

Puisque vous voulez que votre code soit toujours appelé, vous devrez envoyer des messages de données. Vous ne pouvez pas envoyer de messages de données depuis la console Firebase. Mais si vous envoyez déjà des messages à partir d'un serveur d'applications, le processus d'envoi des messages de données et des messages de notification est le même. La seule différence réside dans la structure JSON, où un message de données n'a pas de notification objet. De la documentation sur les messages de données

{
   "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "data" : {
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   },
}