Cette page fournit une aide au dépannage et des réponses aux questions fréquentes sur l'utilisation de Firebase Authentication. Si vous ne trouvez pas ce que vous cherchez ou si vous avez besoin d'aide, contactez l'assistance Firebase.
Dans quelles régions l'authentification par téléphone est-elle disponible ?
Firebase Authentication permet de valider les numéros de téléphone dans le monde entier, mais tous les réseaux ne transmettent pas les messages de validation de manière fiable. Les régions suivantes ont de bons taux de distribution et devraient bien fonctionner pour l'authentification par téléphone. Comme indiqué, certains transporteurs ne sont pas disponibles dans une région en raison de taux de réussite des livraisons trop faibles.
| Région | Code |
|---|---|
| ANNONCE | Andorre |
| AE | Émirats arabes unis |
| AF | Afghanistan |
| AG | Antigua-et-Barbuda |
| AL | Albanie |
| AM | Arménie |
| AO | Angola |
| RA | Argentine |
| AS | Samoa américaines |
| AT | Autriche |
| UA | Australie |
| AW | Aruba |
| AZ | Azerbaïdjan |
| BA | Bosnie-Herzégovine |
| BB | Barbade |
| BD | Bangladesh |
| BE | Belgique |
| BF | Burkina Faso |
| BG | Bulgarie |
| BJ | Bénin |
| BM | Bermudes |
| BN | Brunei Darussalam |
| BO | Bolivie |
| Brésil | Brésil |
| BS | Bahamas |
| BT | Bhoutan |
| BW | Botswana |
| BY | Biélorussie |
| BZ | Belize |
| CA | Canada |
| CD | Congo (Kinshasa) |
| CF | République centrafricaine |
| CG | Congo (Brazzaville) |
| CH | Suisse |
| CI | Côte d'Ivoire |
| CK | Cook (Îles) |
| LM | Chili |
| CM | Cameroun |
| CO | Colombie |
| CR | Costa Rica |
| CV | Cap-Vert |
| CW | Curaçao |
| CY | Chypre |
| CZ | République tchèque |
| DE | Allemagne |
| DJ | Djibouti |
| Danemark | Danemark |
| DM | Dominique |
| DO | République dominicaine |
| DZ | Algérie |
| EC | Équateur |
| EG | Égypte |
| ES | Espagne |
| PR | Éthiopie |
| VEN | Finlande |
| FJ | Fidji |
| FK | Falkland (Îles) |
| FM | Micronésie, États fédérés de |
| FO | Îles Féroé |
| FR | France |
| DG | Gabon |
| Go | Royaume-Uni |
| DB | Grenade |
| GE | Géorgie |
| GF | Guyane |
| GG | Guernesey |
| GH | Ghana |
| GI | Gibraltar |
| GL | Groenland |
| Directeur général | Gambie |
| GP | Guadeloupe |
| GQ | Guinée équatoriale |
| RB | Grèce |
| GT | Guatemala |
| GY | Guyane |
| HK | Hong Kong, RAS de Chine |
| HN | Honduras |
| RH | Croatie |
| MT | Haïti |
| UP | Hongrie |
| ID | Indonésie |
| IE | Irlande |
| IL | Israël |
| IM | Man (Île) |
| IN | Inde |
| IQ | Irak |
| IT | Italie |
| JE | Jersey |
| JM | Jamaïque |
| JO | Jordanie |
| Japon | Japon |
| KE | Kenya |
| KG | Kirghizstan |
| KH | Cambodge |
| KM | Comores |
| KN | Saint-Christophe-et-Niévès |
| KR | Corée du Sud |
| KW | Koweït |
| KY | Îles Caïmans |
| KZ | Kazakhstan |
| LA | République démocratique populaire lao |
| LB | Liban |
| LC | Sainte-Lucie |
| LI | Liechtenstein |
| LK | Sri Lanka |
| LS | Lesotho |
| LT | Lituanie |
| LU | Luxembourg |
| LV | Lettonie |
| LY | Libye |
| MA | Maroc |
| MD | Moldavie |
| MO | Monténégro |
| MF | Saint-Martin (partie française) |
| MG | Madagascar |
| MK | Macédoine, République de |
| Assez satisfaits | Myanmar |
| MN | Mongolie |
| MO | Macao, RAS de Chine |
| MS | Montserrat |
| MT | Malte |
| MU | Maurice (Île) |
| MW | Malawi |
| MX | Mexique |
| MY | Malaisie |
| MZ | Mozambique |
| N/A | Namibie |
| NC | Nouvelle-Calédonie |
| NE | Niger |
| NF | Île Norfolk |
| NG | Nigeria |
| NI | Nicaragua |
| NL | Pays-Bas |
| NON | Norvège |
| NP | Népal |
| NZ | Nouvelle-Zélande |
| OM | Oman |
| PC | Panama |
| PE | Pérou |
| PG | Papouasie - Nouvelle-Guinée |
| PH | Philippines |
| PK | Pakistan |
| PL | Pologne |
| PM | Saint-Pierre-et-Miquelon |
| PR | Porto Rico |
| PS | Territoires palestiniens |
| PT | Portugal |
| PY | Paraguay |
| QA | Qatar |
| RE | Réunion |
| RO | Roumanie |
| RS | Serbie |
| RU | Fédération de Russie |
| RW | Rwanda |
| SA | Arabie saoudite |
| SC | Seychelles |
| Suède | Suède |
| SG | Singapour |
| TB | Sainte-Hélène |
| SI | Slovénie |
| SK | Slovaquie |
| SL | Sierra Leone |
| SN | Sénégal |
| SR | Suriname |
| ST | Sao Tomé-et-Principe |
| SV | El Salvador |
| SZ | Swaziland |
| TC | Îles Turks-et-Caïcos |
| TG | Togo |
| TH | Thaïlande |
| TL | Timor-Oriental |
| Marques | Turkménistan |
| TO | Tonga |
| TR | Turquie |
| TT | Trinité-et-Tobago |
| TW | Taïwan, République de Chine |
| TZ | Tanzanie, République unie de |
| UA | Ukraine |
| UG | Ouganda |
| États-Unis | États-Unis |
| UY | Uruguay |
| UZ | Ouzbékistan |
| CV | Saint-Vincent-et-les-Grenadines |
| VE | Venezuela (République bolivarienne) |
| VG | Îles Vierges britanniques |
| VI | Îles Vierges américaines |
| VN | Viêt Nam |
| WS | Samoa |
| YE | Yémen |
| YT | Mayotte |
| ZA | Afrique du Sud |
| ZM | Zambie |
| ZW | Zimbabwe |
Qu'est-il arrivé aux SMS sans frais du forfait Spark ?
À partir de septembre 2024, pour améliorer la sécurité et la qualité du service d'authentification par téléphone, les projets Firebase devront être associés à un compte Cloud Billing pour activer et utiliser le service SMS.
Comment éviter l'utilisation abusive des SMS lors de l'authentification par téléphone ?
Pour protéger votre projet contre l'inflation artificielle du trafic SMS et l'utilisation abusive des API, procédez comme suit :
Envisagez de définir une règle pour les SMS par région
Affichez votre utilisation régionale des SMS.
Recherchez les régions où le nombre de SMS envoyés est très élevé et le nombre de SMS validés très faible (ou nul). Le ratio entre les adresses validées et celles envoyées correspond à votre taux de réussite. Les taux de réussite corrects se situent généralement entre 70 % et 85 %, car le protocole SMS ne garantit pas la distribution des messages et certaines régions peuvent être sujettes à des utilisations abusives. Un taux de réussite inférieur à 50% implique que de nombreux SMS ont été envoyés, mais que peu de connexions ont abouti. Il s'agit d'un indicateur courant de trafic de pompage de SMS et d'acteurs malveillants.
Utilisez le Règlement sur les régions SMS pour refuser les régions SMS avec de faibles taux de réussite ou n'autoriser que certaines régions si votre application n'est destinée à être distribuée que sur certains marchés.
Limiter vos domaines d'authentification autorisés
Utilisez le tableau de bord des paramètres d'authentification pour gérer les domaines autorisés. Le domaine localhost est ajouté par défaut aux domaines d'authentification approuvés pour simplifier le développement. Envisagez de supprimer localhost des domaines autorisés dans votre projet de production pour empêcher les personnes malintentionnées d'exécuter du code sur localhost leur afin d'accéder à votre projet de production.
Activer et appliquer App Check
Activez App Check pour protéger votre projet contre l'utilisation abusive des API en attestant que les requêtes proviennent uniquement des applications associées à votre projet.
Pour utiliser App Check avec Firebase Authentication, vous devez passer à Firebase Authentication with Identity Platform.
N'oubliez pas que vous devez appliquer App Check pour Authentication dans la console Firebase (envisagez de surveiller le trafic avant d'appliquer). Vérifiez également que la liste des sites approuvés reCAPTCHA Enterprise ne contient que vos sites de production et que la liste des applications enregistrées dans votre projet sur App Check est exacte.
Notez que App Check permet de se protéger contre les attaques automatisées en affirmant que l'appel provient de l'une de vos applications enregistrées. Cela n'empêche pas les utilisateurs d'utiliser votre application de manière inattendue (par exemple, en commençant des flux de connexion sans jamais les terminer pour générer des SMS envoyés).
L'authentification par téléphone est-elle compatible avec les numéros de téléphone transférés vers un nouvel opérateur ?
Pour le moment, les numéros transférés d'un opérateur à un autre ne permettent pas de recevoir de SMS. Il n'existe aucune solution de contournement. Firebase travaille sur ce problème.
Dans mon application Android, pourquoi l'erreur suivante s'affiche-t-elle :
Google sign in failed ?
Google sign in failedSuivez la procédure de dépannage de ces questions fréquentes si vous recevez l'erreur suivante :
GoogleFragment: Google sign in failed
com.google.android.gms.common.api.ApiException: 13: Unable to get token.
at
com.google.android.gms.internal.auth-api.zbay.getSignInCredentialFromIntent(com.google.android.gms:play-services-auth@@20.3.0:6)
Assurez-vous que la connexion avec Google est correctement activée en tant que fournisseur d'authentification :
Dans la console Firebase, ouvrez la section Authentication.
Dans l'onglet Mode de connexion, désactivez, puis réactivez le mode de connexion Google (même s'il est déjà activé) :
Ouvrez la méthode de connexion Google, désactivez-la, puis cliquez sur Enregistrer.
Rouvrez la méthode de connexion Google, activez-la, puis cliquez sur Enregistrer.
Assurez-vous que votre application utilise son fichier de configuration Firebase à jour (
google-services.json).
Obtenez le fichier de configuration de votre application.Vérifiez si l'erreur persiste. Si c'est le cas, passez à l'étape de dépannage suivante.
Assurez-vous que les clients OAuth 2.0 sous-jacents requis sont présents.
Sur la page Identifiants de la console Google Cloud, recherchez la section ID client OAuth 2.0.
Si les clients OAuth 2.0 ne sont pas présents (et que vous avez suivi toutes les étapes de dépannage ci-dessus), contactez l'assistance.
Dans mon application pour plate-forme Apple, pourquoi l'erreur suivante s'affiche-t-elle :
You must specify <clientID> in <GIDConfiguration> ?
You must specify <clientID> in <GIDConfiguration>Suivez la procédure de dépannage de ces questions fréquentes si vous recevez l'erreur suivante :
You must specify |clientID| in |GIDConfiguration|
Assurez-vous que la connexion avec Google est correctement activée en tant que fournisseur d'authentification :
Dans la console Firebase, ouvrez la section Authentication.
Dans l'onglet Mode de connexion, désactivez, puis réactivez le mode de connexion Google (même s'il est déjà activé) :
Ouvrez la méthode de connexion Google, désactivez-la, puis cliquez sur Enregistrer.
Rouvrez la méthode de connexion Google, activez-la, puis cliquez sur Enregistrer.
Assurez-vous que votre application utilise son fichier de configuration Firebase à jour (
GoogleService-Info.plist).
Obtenez le fichier de configuration de votre application.Vérifiez si l'erreur persiste. Si c'est le cas, passez à l'étape de dépannage suivante.
Assurez-vous que les clients OAuth 2.0 sous-jacents requis sont présents.
Sur la page Identifiants de la console Google Cloud, recherchez la section ID client OAuth 2.0.
Si les clients OAuth 2.0 ne sont pas présents (et que vous avez suivi toutes les étapes de dépannage ci-dessus), contactez l'assistance.
Pourquoi l'erreur suivante s'affiche-t-elle dans mon application Web :
AuthErrorCode.INVALID_OAUTH_CLIENT_ID ?
AuthErrorCode.INVALID_OAUTH_CLIENT_IDSuivez la procédure de dépannage de ces questions fréquentes si vous recevez l'erreur suivante :
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
Assurez-vous que la connexion avec Google est correctement activée en tant que fournisseur d'authentification :
Dans la console Firebase, ouvrez la section Authentication.
Dans l'onglet Mode de connexion, désactivez, puis réactivez le mode de connexion Google (même s'il est déjà activé) :
Ouvrez la méthode de connexion Google, désactivez-la, puis cliquez sur Enregistrer.
Rouvrez la méthode de connexion Google, activez-la, puis cliquez sur Enregistrer.
De plus, dans la configuration du fournisseur de connexion Google de la section Authentication, assurez-vous que l'ID client et le code secret OAuth correspondent au client Web affiché sur la page Identifiants de la console Google Cloud (dans la section ID client OAuth 2.0).
Dans mon application Web, pourquoi la connexion avec redirection échoue-t-elle avec l'erreur suivante :
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation ?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operationSuivez la procédure de dépannage de ces questions fréquentes si vous recevez l'erreur suivante :
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
Cette erreur est probablement due au fait que votre domaine de redirection n'est pas répertorié comme domaine autorisé pour Firebase Authentication ou que la clé API que vous utilisez avec le service Firebase Authentication n'est pas valide.
Tout d'abord, assurez-vous que YOUR_REDIRECT_DOMAIN figure dans la liste des domaines autorisés pour votre projet Firebase. Si votre domaine de redirection y figure déjà, continuez à résoudre le problème lié à une clé API non valide.
Par défaut, le SDK JS Firebase Authentication s'appuie sur la clé API de votre projet Firebase portant le libellé Browser key. Il utilise cette clé pour vérifier qu'une URL de redirection de connexion est valide selon la liste des domaines autorisés.
Authentication obtient cette clé API en fonction de la façon dont vous accédez au SDK Authentication :
Si vous utilisez les assistants d'authentification fournis par Hosting pour connecter les utilisateurs avec le SDK JS Authentication, Firebase obtient automatiquement votre clé API avec le reste de votre configuration Firebase chaque fois que vous déployez sur Firebase Hosting. Assurez-vous que
authDomaindans votre application WebfirebaseConfigest correctement configuré pour utiliser l'un des domaines de ce site Hosting. Pour le vérifier, accédez àhttps://authDomain__/firebase/init.jsonet assurez-vous que leprojectIdcorrespond à celui de votrefirebaseConfig.Si vous auto-hébergez le code de connexion, vous pouvez utiliser un fichier
__/firebase/init.jsonpour fournir la configuration Firebase à l'assistant de redirection du SDK JS Authentication auto-hébergé. La clé API et leprojectIdlistés dans ce fichier de configuration doivent correspondre à votre application WebfirebaseConfig.
Vérifiez que cette clé API n'a pas été supprimée : accédez au panneau API et services > Identifiants de la console Google Cloud, où sont listées toutes les clés API de votre projet.
Si le
Browser keyn'a pas été supprimé, vérifiez les points suivants :Assurez-vous que l'API Firebase Authentication figure dans la liste des API autorisées pour la clé d'accès (en savoir plus sur les restrictions d'API pour les clés API).
Si vous auto-hébergez le code de connexion, assurez-vous que la clé API listée dans votre fichier
__/firebase/init.jsoncorrespond à celle de la console Google Cloud. Corrigez la clé dans le fichier, si nécessaire, puis redéployez votre application.Si le
Browser keya été supprimé, vous pouvez demander à Firebase de générer une nouvelle clé API pour vous : dans la console Firebase, accédez àsettings > Paramètres du projet , puis dans la section Vos applications, cliquez sur votre application Web. Cette action crée automatiquement une clé API que vous pouvez voir dans la section Configuration et configuration du SDK pour votre application Web.
Notez que dans la console Google Cloud, cette nouvelle clé API ne s'appellera pas
Browser key, mais portera le même nom que le nom de code de votre application Web Firebase. Si vous décidez d'ajouter des restrictions d'API à cette nouvelle clé API, assurez-vous que l'API Firebase Authentication figure dans la liste des API autorisées.Une fois votre nouvelle clé API créée, suivez les étapes applicables ci-dessous :
Si vous utilisez des URL Hosting réservées, redéployez votre application sur Firebase afin qu'elle puisse obtenir automatiquement la nouvelle clé API avec le reste de votre configuration Firebase.
Si vous auto-hébergez le code de connexion, copiez la nouvelle clé API et ajoutez-la à votre fichier
__/firebase/init.json, puis redéployez votre application.
Comment créer manuellement un client Web OAuth ?
Ouvrez la page Identifiants de la console Google Cloud.
En haut de la page, sélectionnez Créer des identifiants > ID client OAuth.
Si vous êtes invité à configurer votre écran de consentement, suivez les instructions à l'écran, puis passez aux étapes suivantes de ces questions fréquentes.
Créez le client Web OAuth :
Dans le champ Type d'application, sélectionnez Application Web.
Pour les origines JavaScript autorisées, ajoutez les éléments suivants :
http://localhosthttp://localhost:5000https://PROJECT_ID.firebaseapp.comhttps://PROJECT_ID.web.app
Dans le champ URI de redirection autorisés, ajoutez les éléments suivants :
https://PROJECT_ID.firebaseapp.com/__/auth/handlerhttps://PROJECT_ID.web.app/__/auth/handler
Enregistrez le client OAuth.
Copiez le nouvel ID client et le nouveau code secret du client OAuth dans le presse-papiers.
Dans la console Firebase, ouvrez la section Authentication.
Dans l'onglet Sign-in method (Mode de connexion), ouvrez le fournisseur Google sign-in (Connexion Google), puis collez l'ID client et le code secret du serveur Web que vous venez de créer et de copier depuis la console Google Cloud. Cliquez sur Enregistrer.
Comment %APP_NAME% est-il déterminé pour le modèle d'e-mail de confirmation qui peut être envoyé à un utilisateur lorsqu'il s'inscrit avec une adresse e-mail et un mot de passe ?
Avant décembre 2022, le %APP_NAME% du modèle d'e-mail était renseigné avec le nom de marque OAuth provisionné automatiquement chaque fois qu'une application Android était enregistrée dans le projet Firebase. Désormais, la marque OAuth n'étant provisionnée que lorsque Google Sign-In est activé, la description suivante explique comment %APP_NAME% est déterminé :
Si le nom de marque OAuth est disponible, le
%APP_NAME%dans le modèle d'e-mail sera le nom de marque OAuth (comme avant décembre 2022).Si le nom de la marque OAuth n'est pas disponible, voici comment le
%APP_NAME%du modèle d'e-mail est déterminé :Pour les applications Web, le
%APP_NAME%correspondra au nom de site Firebase Hosting par défaut (la valeur précédant.firebaseapp.comet.web.app, qui est généralement l'ID du projet Firebase).Pour les applications mobiles :
Si le nom du package Android ou l'ID du bundle iOS figurent dans la demande,
%APP_NAME%correspond au nom de l'application utilisé dans le Play Store ou l'App Store (respectivement).Sinon,
%APP_NAME%sera le nom du site Firebase Hosting par défaut (la valeur précédant.firebaseapp.comet.web.app, qui est généralement l'ID du projet Firebase).
Notez que si la recherche du nom de site Firebase Hosting par défaut échoue, la dernière solution de remplacement consiste à utiliser l'ID du projet Firebase comme
%APP_NAME%.