J'essaie de tester les API de messagerie Firebase Cloud car toutes les fonctionnalités ne sont pas disponibles dans la console (notamment la personnalisation des notifications lorsque l'application est en arrière-plan). Mais pour certaines raisons, je n'arrive pas à le faire fonctionner, et il affiche toujours l'erreur 401. J'ai cherché les raisons de ce problème, et j'ai essayé après avoir régénéré une nouvelle clé de serveur, mais l'erreur reste constante. Étonnamment, lorsque j'ai généré une nouvelle clé de serveur, elle n'est pas reflétée dans la console Firebase et elle affiche la clé de serveur comme vide. J'ai également essayé d'ajouter mon adresse IP à la liste blanche des IP du serveur, mais sans succès. J'ai joint une capture d'écran d'une demande que j'ai faite avec Postman (j'ai substitué la clé de serveur à la place de Clé du serveur .
Je suis coincé sur ce sujet depuis quelques heures et j'apprécierais vraiment un peu d'aide.
0 votes
Essayez de générer une nouvelle clé et faites attention à définir : key-type=server (pas d'Android ou d'ios ou de navigateur) et ip-whitelist= laissez-le vide (cela autorisera tous les ips)
0 votes
J'ai généré une nouvelle clé à nouveau, le type est serveur. J'ai laissé l'ip-whitelist vide. Toujours le même résultat :(. Je voulais juste savoir s'il y avait une erreur dans la façon dont je faisais la demande ?
0 votes
La requête semble correcte. Essayez peut-être d'utiliser curl et postez la sortie complète de la demande et de la réponse. Si vous ne trouvez pas de solution, veuillez contacter le support Firebase : firebase.google.com/support/contact/bugs-features
0 votes
Merci Diego, j'ai supprimé le commentaire précédent, car je n'ai pas envoyé de charge utile de notification dans la demande, donc aucune notification n'est apparue dans l'émulateur, c'était donc mon erreur. Je vais réessayer et poster les résultats à nouveau ici.
0 votes
Super ! Donc la 401 était un problème avec postman. En ce qui concerne l'émulateur, vérifiez si votre application peut obtenir un jeton de périphérique. Si c'est le cas, elle devrait être en mesure de recevoir le message.
0 votes
J'ai réessayé. Lorsque l'application est au premier plan, la notification fonctionne et j'ai obtenu un rappel dans onMessageReceived. Quand l'application est en arrière-plan, je n'ai pas obtenu de callback dans onMessageReceived, bien que j'aie reçu la notification. Donc, à la fin, l'utilisation de curl me donne le même comportement que la console. Avez-vous une idée ? Merci pour votre aide.
0 votes
Consultez ma réponse à cette autre question : stackoverflow.com/a/37626817/613115 (partie "Explication complète")
0 votes
Super !, merci beaucoup. J'avais oublié que cela ne fonctionnerait que pour les messages de données en cas d'arrière-plan. Le problème est donc résolu.