Cette page fournit une aide au dépannage et des réponses aux questions fréquentes sur Cloud Messaging.
Quelle est la différence entre l'outil de création de notifications et FCM ?
Firebase Cloud Messaging fournit un ensemble complet de fonctionnalités de messagerie via ses SDK clients et son protocole de serveur HTTP. Pour les déploiements avec des exigences de messagerie plus complexes, FCM est le bon choix.
L'outil de création de notifications est une solution de messagerie légère et sans serveur basée sur Firebase Cloud Messaging. Grâce à une console graphique conviviale et à des exigences de codage réduites, l'outil de création de notifications permet aux utilisateurs d'envoyer des messages pour réengager et fidéliser les utilisateurs, favoriser la croissance de l'application et soutenir les campagnes marketing.
| Fonctionnalités | Outil de création de notifications | Cloud Messaging | |
|---|---|---|---|
| Cible | Un appareil | ||
| Clients abonnés à des thèmes (par exemple, la météo) | |||
| Clients dans un segment d'utilisateurs prédéfini (application, version, langue) | |||
| Clients dans les audiences Analytics spécifiées | |||
| Clients dans des groupes d'appareils | |||
| En amont, du client vers le serveur | |||
| Type de message | Notifications jusqu'à 2 ko | ||
| Messages de données jusqu'à 4 ko | |||
| Diffusion | Immédiat | ||
| Heure locale future de l'appareil client | |||
| Analytics | Collecte intégrée des données analytiques sur les notifications et analyse de l'entonnoir |
Dois-je utiliser d'autres services Firebase pour utiliser FCM ?
Vous pouvez utiliser Firebase Cloud Messaging en tant que composant autonome, sans utiliser d'autres services Firebase.
Pourquoi mes appareils cibles ne semblent-ils pas recevoir de messages ?
Si les appareils ne semblent pas recevoir les messages, vérifiez d'abord les deux causes potentielles suivantes :
Gestion des messages au premier plan pour les messages de notification. Les applications clientes doivent ajouter une logique de gestion des messages pour gérer les messages de notification lorsque l'application est au premier plan sur l'appareil. Consultez les détails pour iOS et Android.
Restrictions de pare-feu réseau Si votre organisation dispose d'un pare-feu qui limite le trafic vers ou depuis Internet, vous devez le configurer pour autoriser la connectivité avec FCM afin que vos applications clientes Firebase Cloud Messaging puissent recevoir des messages. Les ports à ouvrir sont les suivants :
- 5228
- 5229
- 5230
FCM utilise généralement le port 5228, mais parfois aussi les ports 5229 et 5230. FCM ne fournit pas d'adresses IP spécifiques. Vous devez donc autoriser votre pare-feu à accepter les connexions sortantes vers toutes les adresses IP contenues dans les blocs d'adresses IP listés dans l'ASN 15169 de Google.
Pourquoi onMessageReceived n'est-il pas appelé dans mon application Android ?
Lorsque votre application est en arrière-plan, les messages de notification s'affichent dans la barre d'état système et onMessageReceived n'est pas appelé. Pour les messages de notification avec une charge utile de données, le message de notification s'affiche dans la barre d'état système, et les données incluses dans le message de notification peuvent être récupérées à partir de l'intent lancé lorsque l'utilisateur appuie sur la notification.
Pour en savoir plus, consultez Recevoir et gérer des messages.
Pourquoi est-ce que je reçois une erreur 404 lorsque j'envoie des messages à une instance d'application active restaurée à partir d'une sauvegarde ?
Le FID (ID d'installation Firebase) est l'identifiant d'une instance d'application. Par défaut, les données d'installation Firebase sont sauvegardées et restaurées. Ainsi, dans le cas d'une restauration, l'instance d'application restaurée et l'instance d'application d'origine partagent le même FID. Étant donné que FCM ne stocke qu'un seul jeton par FID, si l'instance d'application d'origine et l'instance d'application restaurée sont toutes deux utilisées, lorsqu'une instance d'application s'enregistre auprès de FCM, le jeton de l'autre instance d'application est supprimé, ce qui entraîne des erreurs 404.
Nous recommandons aux développeurs de procéder comme suit dans leur application :
- Exclure les données d'installation Firebase de la sauvegarde. Les données d'installation de Firebase sont stockées dans un fichier
PersistedInstallation....json. Le nom de fichier est une constante pour une application. Par exemple,<exclude domain="file" path="PersistedInstallation.W0R...GQ.json" />.
Apple a annoncé l'abandon de l'ancien protocole binaire pour les APN. Dois-je faire quelque chose ?
Non. Firebase Cloud Messaging est passé au protocole APNs basé sur HTTP/2 en 2017. Si vous utilisez FCM pour envoyer des notifications aux appareils iOS, aucune action n'est requise de votre part.
Quotas et limites de FCM
Comment avertir une large clientèle en deux minutes ?
Ce cas d'utilisation n'est pas accepté. Vous devez répartir votre trafic sur cinq minutes.
Mon application informe les utilisateurs d'événements, et ces messages doivent être envoyés immédiatement pour soutenir mon modèle économique. Puis-je obtenir un quota plus élevé ?
Malheureusement, nous ne pouvons pas accorder d'augmentation de quota pour cette raison. Vous devez répartir votre trafic sur cinq minutes pour éviter les pics de trafic.
Mes messages concernent des événements programmés. Comment envoyer tout le trafic au début de l'heure ?
Nous vous recommandons de commencer à envoyer les notifications au moins cinq minutes avant l'événement. Vous pouvez également envoyer des messages de données et implémenter l'équivalent du gestionnaire onMessageReceived de votre plate-forme pour planifier des notifications locales à l'avance.
Comment suivre mon utilisation des quotas ?
Consultez les conseils de Google Cloud pour représenter graphiquement et surveiller les métriques de quota.
Les erreurs 429 sont difficiles à gérer pour moi et mon entreprise. Puis-je obtenir une exemption ou un quota plus élevé pour éviter de recevoir des erreurs 429 ?
Nous comprenons que les limites de quota peuvent être contraignantes, mais elles sont essentielles pour garantir la fiabilité du service. Nous ne pouvons donc pas accorder d'exceptions. Utilisez des nouvelles tentatives pour gérer correctement les erreurs 429.
Combien de temps faut-il pour que ma demande d'augmentation de quota soit traitée ?
Votre demande d'augmentation de quota dépend de votre utilisation de FCM. Dans tous les cas, vous devriez recevoir une réponse sous quelques jours ouvrés. Dans certains cas, il peut y avoir des échanges concernant votre utilisation de FCM et diverses circonstances, ce qui peut prolonger le processus. Si toutes les conditions sont remplies, la plupart des demandes sont traitées sous deux semaines.
Puis-je obtenir plus de quota pour un événement temporaire ?
Vous pouvez demander un quota supplémentaire pour un événement d'une durée maximale d'un mois. Envoyez la demande au moins un mois avant l'événement, en indiquant clairement les dates de début et de fin de l'événement. FCM s'efforcera de répondre à la demande. Si elles sont accordées, ces augmentations de quota seront annulées après la date de fin de l'événement.
Mon quota actuel est-il susceptible d'être modifié ?
Bien que Google ne le fasse pas à la légère, les quotas peuvent être modifiés si nécessaire pour protéger l'intégrité du système. Dans la mesure du possible, Google vous informera à l'avance de ces modifications. Maintenez à jour vos contacts pour le contrat-cadre de services Cloud afin d'augmenter vos chances de recevoir des annonces sur le service.
FCM abandons d'anciennes API
API côté serveur abandonnées en septembre 2026
Quelles API et fonctionnalités sont obsolètes et seront mises hors service ? Que dois-je faire si j'utilise ces API ?
Toutes les API de serveur InstanceId et la fonctionnalité de groupe d'appareils sont obsolètes et seront mises hors service le 29 septembre 2027. Le tableau suivant fournit plus de détails sur les API/fonctionnalités obsolètes et l'action requise.
| Nom d'API | Point de terminaison de l'API | Utilisation prévue | Impact sur les clients | Action requise |
|---|---|---|---|---|
| API d'informations InstanceId | https://iid.googleapis.com/iid/info | Obtenir des informations liées à un jeton InstanceId / FCM | Les requêtes envoyées à cette API commenceront à échouer après le 29 septembre 2027. | Pour les clients qui utilisent l'API pour la validation des jetons, utilisez l'API d'envoi FCM V1 et définissez validate_only sur "true".
Pour les clients qui utilisent l'API pour obtenir des informations sur les abonnements aux thèmes, migrez vers la nouvelle API d'abonnement aux thèmes. |
| API d'abonnement aux thèmes InstanceId | https://iid.googleapis.com/iid/v1/…/rel/topics https://iid.googleapis.com/iid/v1:batchAdd https://iid.googleapis.com/iid/v1:batchRemove |
Abonnement de jetons à un sujet via l'ancienne API d'abonnement aux sujets. | Les requêtes envoyées à ces API commenceront à échouer après le 29 septembre 2027. | Migrez vers la nouvelle API de serveur d'abonnement aux thèmes FCM pour l'abonnement et le désabonnement aux thèmes. |
| API d'importation par lot InstanceId | https://iid.googleapis.com/iid/v1:batchImport | Créer des jetons FCM pour iOS de manière groupée côté serveur. | Les requêtes envoyées à cette API commenceront à échouer après le 29 septembre 2027.
La création d'enregistrements FCM à partir de jetons APNs côté serveur ne sera pas possible. |
Vous pouvez utiliser le service APNs d'Apple pour envoyer des notifications à l'aide de jetons APNs.
Pour bénéficier des avantages supplémentaires offerts par FCM, intégrez votre application au SDK iOS FCM, qui créera des enregistrements FCM sur le client. |
| API de gestion des groupes d'appareils | https://fcm.googleapis.com/fcm/notification https://fcm.googleapis.com/gcm/notification https://fcm.googleapis.com/iid/notification https://fcm.googleapis.com/notification |
Ajouter / supprimer/ récupérer des membres d'un groupe d'appareils. | Les requêtes envoyées à cette API commenceront à échouer après le 29 septembre 2027. | Consultez les instructions pour migrer depuis cette fonctionnalité.
Les messages peuvent toujours être envoyés à des enregistrements FCM individuels au lieu de jetons de groupe. |
| Envoi à un groupe d'appareils | https://fcm.googleapis.com/v1/projects/…/messages:send | Envoi de messages à des groupes d'appareils à l'aide de la clé notification_key du groupe. | Cette API continuera de fonctionner, mais elle n'acceptera plus les jetons de groupe d'appareils après le 29 septembre 2027. |
Si j'utilise le SDK Admin Firebase pour gérer les abonnements aux thèmes, serai-je concerné par l'abandon ? Que dois-je faire ?
Si vous utilisez des versions antérieures du SDK Admin Firebase pour gérer les abonnements aux thèmes, vous serez concerné par l'abandon. Vous devrez mettre à niveau votre SDK Admin Firebase vers les versions suivantes :
| Plate-forme | Version du SDK Admin concernée | Version du SDK Admin vers laquelle effectuer la mise à niveau |
|---|---|---|
| Node.js | <=14.4.0 | >=14.5.0 |
| Python | <=7.6.0 | >=7.7.0 |
| Java | <=9.10.0 | >=9.11.0 |
| Accéder | <=4.21.0 | >=4.22.0 |
| .NET | <=3.6.0 | >=3.7.0 |
Vais-je constater une dégradation du service avant le 29 septembre 2027 ?
Non. Vous disposez de 12 mois pour migrer des API obsolètes vers des alternatives sans aucune dégradation du service. Nous vous recommandons vivement de planifier la migration dès que possible afin de ne pas être affecté par l'abandon de la version 1.
Vous devriez recevoir des erreurs lorsque vous appellerez des API obsolètes après le 29 septembre 2027.
Les nouveaux utilisateurs peuvent-ils intégrer les API/fonctionnalités obsolètes avant leur mise hors service ?
Les nouveaux utilisateurs peuvent intégrer les API/fonctionnalités obsolètes avant le 1er janvier 2027. Après le 1er janvier 2027, les nouveaux utilisateurs ne pourront plus utiliser les API obsolètes. Les utilisateurs qui utilisent les API obsolètes peuvent continuer à les utiliser jusqu'au 29 septembre 2027.
Questions fréquentes sur AndroidConfigV2
Pendant combien de temps l'ancienne API AndroidConfig (v1) sera-t-elle compatible ?
FCM prévoit de continuer à prendre en charge les charges utiles v1 AndroidConfig pendant plusieurs années après la disponibilité générale de AndroidConfigV2. Bien que le calendrier de migration s'étende sur plusieurs années, AndroidConfigV2 offre une distribution des notifications plus prévisible. Nous vous encourageons donc à migrer dès que possible.
Quelles versions de l'OS Android sont compatibles avec AndroidConfigV2 ?
AndroidConfigV2 sera compatible avec toutes les versions d'Android prises en charge par Google. Tous les appareils, à l'exception de ceux datant de plus de 10 ans, seront compatibles lorsque l'ancienne API v1 sera mise hors service.
AndroidConfigV2 enverra-t-il des charges utiles aux appareils qui ne sont compatibles qu'avec l'ancienne interface v1 ? Dans quel ordre dois-je déployer les modifications ?
Oui. Lorsque vous envoyez une requête AndroidConfigV2, FCM et GMS Core traduisent automatiquement la charge utile pour les appareils exécutant d'anciens SDK client ou pour les applications qui n'ont pas encore remplacé onNotificationReceived() ou onBackgroundSyncReceived(), en la diffusant à l'aide de onMessageReceived().
Pourquoi AndroidConfigV2 nécessite-t-il de renvoyer les notifications via le SDK FCM au lieu d'appeler directement NotificationManager.notify() ?
En renvoyant un NotificationResponse au SDK FCM Open Source ou en utilisant FcmNotificationManager :
- Votre application reçoit une fenêtre d'exécution protégée pour déchiffrer ou personnaliser la notification.
- Si votre application manque de temps, GMS Core assure une diffusion en temps opportun en publiant la notification de remplacement que vous avez configurée dans
remote_notification.notification.
AndroidConfigV2 gère-t-il les notifications différemment lorsque mon application est au premier plan ou en arrière-plan ?
Non. Contrairement aux anciens messages de notification v1, AndroidConfigV2 ne divise pas le routage des messages selon que votre application est au premier plan ou en arrière-plan.
Lorsque vous envoyez un RemoteNotification, la notification s'affiche automatiquement dans les deux états, sauf si vous définissez mutable_content: true et que vous la désactivez explicitement dans onNotificationReceived() à l'aide de NotificationResponse.createEmpty().
De combien de temps mon application dispose-t-elle pour traiter une RemoteNotification modifiable ?
Lorsque mutable_content: true est défini sur un RemoteNotification, votre application dispose de 20 secondes maximum dans onNotificationReceived() pour déchiffrer les charges utiles, récupérer de petits éléments (comme des avatars) ou contacter le serveur de votre application avant de renvoyer un NotificationResponse. Si le rappel dépasse 20 secondes, l'exécution est annulée et GMS Core publie automatiquement une notification de remplacement basée sur la charge utile remote_notification.notification.
Comment fonctionne l'application de la suppression des notifications pour les RemoteNotifications modifiables ?
Les applications peuvent supprimer un RemoteNotification en renvoyant NotificationResponse.suppress() à partir de onNotificationReceived(). Par exemple, lorsqu'un chat est ignoré, qu'un expéditeur est bloqué ou qu'une charge utile chiffrée de bout en bout échoue à la validation.
- En arrière-plan : votre application peut supprimer jusqu'à 25% des messages
RemoteNotificationreçus sur une fenêtre glissante. Si le taux de suppression en arrière-plan de votre application dépasse 25%, GMS Core affiche et publie automatiquement la notification de remplacement à partir de la charge utileremote_notification.notification. - Au premier plan : vous pouvez supprimer toutes les notifications à distance lorsqu'elles sont actives au premier plan. Par exemple, pour afficher un toast dans l'application ou mettre à jour un écran de chat ouvert au lieu de publier une notification système.
Mon application peut-elle publier plusieurs notifications ou annuler une notification existante à partir d'une seule RemoteNotification ?
Oui. Utilisez les éléments suivants pour annuler ou publier plusieurs notifications :
- Annuler une seule notification : renvoyez
NotificationResponse.createCancel(tag, id)à partir deonNotificationReceived()pour ignorer une notification précédemment publiée. - Publier plusieurs notifications ou combiner des annulations et des publications : appelez
getFcmNotificationManager(message)dansonNotificationReceived()pour appelerpostNow(tag, id, notification)etcancelNow(tag, id)plusieurs fois, puis renvoyezmanager.finished()une fois l'opération terminée.
Les RemoteViews personnalisées peuvent-elles fonctionner avec AndroidConfigV2 ?
Oui, les RemoteViews personnalisées fonctionneront avec AndroidConfigV2.
onNotificationReceived() renvoie un objet Notification Android standard. Toutes les API de notification Android standards, telles que setCustomContentView(), restent compatibles. Notez que RemoteViews et Views sont en mode maintenance et qu'il est recommandé de migrer vers Compose.