En esta página, se proporciona ayuda para solucionar problemas y respuestas a preguntas frecuentes sobre el uso de Firebase Authentication. Si no encuentras lo que buscas o necesitas más ayuda, comunícate con el equipo de asistencia de Firebase.
¿En qué regiones se admite la autenticación por teléfono?
Firebase Authentication admite la verificación del número de teléfono a nivel mundial, pero no todas las redes entregan nuestros mensajes de verificación de manera confiable. Las siguientes regiones tienen buenos índices de entrega y se espera que funcionen bien para la autenticación por teléfono. Cuando corresponda, algunos operadores no estarán disponibles en una región debido a que tienen tasas de éxito de entrega bajas.
| Región | Código |
|---|---|
| AD | Andorra |
| AE | Emiratos Árabes Unidos |
| AF | Afganistán |
| AG | Antigua y Barbuda |
| AL | Albania |
| AM | Armenia |
| AO | Angola |
| AR | Argentina |
| AS | Samoa Americana |
| AT | Austria |
| AU | Australia |
| AW | Aruba |
| AZ | Azerbaiyán |
| BA | Bosnia-Herzegovina |
| BB | Barbados |
| BD | Bangladés |
| BE | Bélgica |
| BF | Burkina Faso |
| BG | Bulgaria |
| BJ | Benín |
| BM | Bermudas |
| BN | Brunéi Darussalam |
| BO | Bolivia |
| BR | Brasil |
| BS | Bahamas |
| BT | Bután |
| BW | Botsuana |
| BY | Bielorrusia |
| BZ | Belice |
| CA | Canadá |
| CD | República Democrática del Congo (Kinsasa) |
| CF | República Centroafricana |
| CG | Congo (Brazzaville) |
| CH | Suiza |
| CI | Costa de Marfil |
| CK | Islas Cook |
| CL | Chile |
| CM | Camerún |
| CO | Colombia |
| CR | Costa Rica |
| CV | Cabo Verde |
| CW | Curazao |
| CY | Chipre |
| CZ | República Checa |
| DE | Alemania |
| DJ | Yibuti |
| DK | Dinamarca |
| DM | Dominica |
| DO | República Dominicana |
| DZ | Argelia |
| EC | Ecuador |
| EG | Egipto |
| ES | España |
| ET | Etiopía |
| FI | Finlandia |
| FJ | Fiyi |
| FK | Islas Malvinas |
| FM | Estados Federados de Micronesia |
| FO | Islas Feroe |
| FR | Francia |
| GA | Gabón |
| GB | Reino Unido |
| GD | Granada |
| GE | Georgia |
| GF | Guayana Francesa |
| GG | Guernsey |
| GH | Ghana |
| GI | Gibraltar |
| GL | Groenlandia |
| GM | Gambia |
| PJ | Guadalupe |
| GQ | Guinea Ecuatorial |
| GR | Grecia |
| GT | Guatemala |
| GY | Guyana |
| HK | Región Administrativa Especial de Hong Kong, China |
| HN | Honduras |
| HR | Croacia |
| HT | Haití |
| HU | Hungría |
| ID | Indonesia |
| IE | Irlanda |
| IL | Israel |
| IM | Isla de Man |
| IN | India |
| IQ | Irak |
| IT | Italia |
| JE | Jersey |
| JM | Jamaica |
| JO | Jordania |
| JP | Japón |
| KE | Kenia |
| KG | Kirguistán |
| KH | Camboya |
| KM | Comoras |
| KN | San Cristóbal y Nieves |
| KR | Corea del Sur |
| KW | Kuwait |
| KY | Islas Caimán |
| KZ | Kazajistán |
| LA | República Democrática Popular Lao |
| LB | Líbano |
| LC | Santa Lucía |
| LI | Liechtenstein |
| LK | Sri Lanka |
| LS | Lesoto |
| LT | Lituania |
| LU | Luxemburgo |
| LV | Letonia |
| LY | Libia |
| MA | Marruecos |
| MD | Moldavia |
| ME | Montenegro |
| MF | San Martín (parte francesa) |
| MG | Madagascar |
| MK | República de Macedonia |
| MM | Birmania |
| MN | Mongolia |
| MO | Región Administrativa Especial de Macao, China |
| MS | Montserrat |
| MT | Malta |
| MU | Mauricio |
| MW | Malaui |
| MX | México |
| MY | Malasia |
| MZ | Mozambique |
| NA | Namibia |
| NC | Nueva Caledonia |
| NE | Níger |
| NF | Isla Norfolk |
| NG | Nigeria |
| NI | Nicaragua |
| NL | Países Bajos |
| NO | Noruega |
| NP | Nepal |
| NZ | Nueva Zelanda |
| OM | Omán |
| PA | Panamá |
| PE | Perú |
| PG | Papúa Nueva Guinea |
| PH | Filipinas |
| PK | Pakistán |
| PL | Polonia |
| PM | San Pedro y Miquelón |
| PR | Puerto Rico |
| PS | Territorio Palestino |
| PT | Portugal |
| PY | Paraguay |
| QA | Catar |
| RE | Reunión |
| RO | Rumania |
| RS | Serbia |
| RU | Federación Rusa |
| RW | Ruanda |
| SA | Arabia Saudita |
| SC | Seychelles |
| SE | Suecia |
| SG | Singapur |
| SH | Santa Elena |
| SI | Eslovenia |
| SK | Eslovaquia |
| SL | Sierra Leona |
| SN | Senegal |
| SR | Surinam |
| ST | Santo Tomé y Príncipe |
| SV | El Salvador |
| SZ | Suazilandia |
| TC | Islas Turcas y Caicos |
| TG | Togo |
| TH | Tailandia |
| TL | Timor Oriental |
| TM | Turkmenistán |
| TO | Tonga |
| TR | Turquía |
| TT | Trinidad y Tobago |
| TW | Taiwán, República de China |
| TZ | República Unida de Tanzania |
| UA | Ucrania |
| UG | Uganda |
| US | Estados Unidos de América |
| UY | Uruguay |
| UZ | Uzbekistán |
| VC | San Vicente y las Granadinas |
| VE | Venezuela (República Bolivariana) |
| VG | Islas Vírgenes Británicas |
| VI | Islas Vírgenes, EE.UU. |
| VN | Vietnam |
| WS | Samoa |
| YE | Yemen |
| YT | Mayotte |
| ZA | Sudáfrica |
| ZM | Zambia |
| ZW | Zimbabue |
¿Qué pasó con los SMS sin costo del plan de precios Spark?
A partir de septiembre de 2024, para mejorar la seguridad y la calidad del servicio de la autenticación por teléfono, los proyectos de Firebase deben estar vinculados a una cuenta de Cloud Billing para habilitar y usar el servicio de SMS.
¿Cómo puedo evitar el abuso de SMS cuando uso la autenticación por teléfono?
Para proteger tu proyecto contra el incremento desmedido de tráfico de SMS y el abuso de la API, sigue estos pasos:
Considera establecer una política de región de SMS
Consulta el uso de SMS regional
Busca regiones con una cantidad muy alta de SMS enviados y una cantidad muy baja (o cero) de SMS verificados. La proporción de verificados y enviados es tu tasa de éxito. Por lo general, las tasas de éxito positivas son de entre el 70% y el 85%, ya que los SMS no son un protocolo de entrega garantizado, y algunas regiones pueden experimentar abuso. Las tasas de éxito inferiores al 50% implican muchos SMS enviados, pero pocos accesos exitosos, lo que es un indicador común de las personas que actúan de mala fe y del incremento desmedido de tráfico de SMS.
Usa la Política de región de SMS para rechazar regiones de SMS con tasas de éxito bajas o permitir solo ciertas regiones si tu app está destinada únicamente a la distribución en determinados mercados.
Limita tus dominios de autenticación autorizados
Usa el
panel de configuración de Authentication
para administrar los dominios autorizados. El dominio localhost se agrega de forma predeterminada a los
dominios de autenticación aprobados para simplificar el desarrollo. Procura quitar localhost de los dominios autorizados de tu proyecto de producción para evitar que personas malintencionadas ejecuten código en su localhost para acceder a tu proyecto de producción.
Habilita y aplica App Check
Habilita App Check para ayudar a proteger tu proyecto de abusos de API. Para ello, certifica que las solicitudes solo provienen de aplicaciones asociadas a tu proyecto.
Para usar App Check con Firebase Authentication, debes actualizar a Firebase Authentication with Identity Platform.
Recuerda que debes aplicar App Check para Authentication en la consola de Firebase (considera supervisar el tráfico antes de aplicar la medida). Además, vuelve a verificar la lista de sitios aprobados de reCAPTCHA Enterprise para validar que solo contenga los sitios de producción y que la lista de aplicaciones registradas en el proyecto en App Check sea precisa.
Ten en cuenta que App Check ayuda a protegerte de ataques automatizados, ya que afirma que la llamada proviene de una de tus aplicaciones registradas. No impide que los usuarios usen la app de formas no deseadas (por ejemplo, iniciar los flujos de acceso y nunca finalizarlos para generar SMS enviados).
¿Los números de teléfono transferidos a un operador nuevo son compatibles con la autenticación telefónica?
En este momento, los números transferidos entre operadores provocarán que todos los SMS no se puedan entregar a esos usuarios finales. No hay una solución alternativa y Firebase está trabajando en este problema.
En mi app para Android, ¿por qué recibo el siguiente
error:
Google sign in failed ?
Google sign in failedSigue los pasos para solucionar problemas que aparecen en estas Preguntas frecuentes si recibes el siguiente error:
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)
Asegúrate de que el Acceso con Google esté habilitado de forma correcta como proveedor de autenticación:
En Firebase console, abre la sección Authentication.
En la pestaña Método de acceso, inhabilita y vuelve a habilitar el método de acceso de Google (incluso si ya está habilitado):
Abre el método de acceso de Google, inhabilítalo y haz clic en Guardar.
Vuelve a abrir el método de acceso de Google, habilítalo y haz clic en Guardar.
Asegúrate de que tu app use su archivo de configuración de Firebase actualizado (
google-services.json).
Obtén el archivo de configuración de tu app.Revisa si aún recibes el error. Si es así, continúa con el siguiente paso para solucionar el problema.
Asegúrate de que estén presentes los clientes de OAuth 2.0 subyacentes necesarios.
En la página Credenciales de la consola de Google Cloud, revisa la sección IDs de cliente de OAuth 2.0.
Si los clientes de OAuth 2.0 no están presentes (y ya completaste todos los pasos anteriores de solución de problemas), comunícate con el equipo de asistencia.
En mi app para la plataforma de Apple, ¿por qué recibo el
siguiente error:
You must specify <clientID> in <GIDConfiguration> ?
You must specify <clientID> in <GIDConfiguration>Sigue los pasos para solucionar problemas que aparecen en estas Preguntas frecuentes si recibes el siguiente error:
You must specify |clientID| in |GIDConfiguration|
Asegúrate de que el Acceso con Google esté habilitado de forma correcta como proveedor de autenticación:
En Firebase console, abre la sección Authentication.
En la pestaña Método de acceso, inhabilita y vuelve a habilitar el método de acceso de Google (incluso si ya está habilitado):
Abre el método de acceso de Google, inhabilítalo y haz clic en Guardar.
Vuelve a abrir el método de acceso de Google, habilítalo y haz clic en Guardar.
Asegúrate de que tu app use su archivo de configuración de Firebase actualizado (
GoogleService-Info.plist).
Obtén el archivo de configuración de tu app.Revisa si aún recibes el error. Si es así, continúa con el siguiente paso para solucionar el problema.
Asegúrate de que estén presentes los clientes de OAuth 2.0 subyacentes necesarios.
En la página Credenciales de la consola de Google Cloud, revisa la sección IDs de cliente de OAuth 2.0.
Si los clientes de OAuth 2.0 no están presentes (y ya completaste todos los pasos anteriores de solución de problemas), comunícate con el equipo de asistencia.
En mi app web, ¿por qué recibo el siguiente
error:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID ?
AuthErrorCode.INVALID_OAUTH_CLIENT_IDSigue los pasos para solucionar problemas que aparecen en estas Preguntas frecuentes si recibes el siguiente error:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
Asegúrate de que el Acceso con Google esté habilitado de forma correcta como proveedor de autenticación:
En Firebase console, abre la sección Authentication.
En la pestaña Método de acceso, inhabilita y vuelve a habilitar el método de acceso de Google (incluso si ya está habilitado):
Abre el método de acceso de Google, inhabilítalo y haz clic en Guardar.
Vuelve a abrir el método de acceso de Google, habilítalo y haz clic en Guardar.
Además, en la configuración del proveedor de acceso de Google de la sección Authentication, asegúrate de que el ID y el secreto de cliente de OAuth coincidan con el cliente web que se muestra en la página Credenciales de la consola de Google Cloud (consulta la sección IDs de cliente de OAuth 2.0).
En mi app web, ¿por qué el acceso con redireccionamientos falla
con el siguiente error:
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation ?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operationSigue los pasos para solucionar problemas que aparecen en estas Preguntas frecuentes si recibes el siguiente error:
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
Es probable que este error se deba a que tu dominio de redireccionamiento no aparece como un dominio autorizado para Firebase Authentication, o a que la clave de API que usas con el servicio de Firebase Authentication no es válida.
Primero, asegúrate de que YOUR_REDIRECT_DOMAIN esté en la lista de dominios autorizados de tu proyecto de Firebase. Si tu dominio de redireccionamiento ya aparece en la lista, sigue los pasos para solucionar problemas relacionados con una clave de API no válida.
De forma predeterminada, el SDK de Firebase Authentication JS se basa en la clave de API de tu proyecto de Firebase
que está etiquetada como Browser key y la usa para verificar que
una URL de redireccionamiento de acceso sea válida según la lista de dominios autorizados.
Authentication obtiene esta clave de API según la forma en que accedas al SDK de Authentication:
Si usas los auxiliares de Auth proporcionados por Hosting para que los usuarios accedan con el SDK de Authentication JS, Firebase obtiene automáticamente tu clave de API con el resto de la configuración de Firebase cada vez que realizas una implementación en Firebase Hosting. Asegúrate de que el
authDomainde tu app webfirebaseConfigesté configurado correctamente para usar uno de los dominios de ese sitio de Hosting. Para verificarlo, puedes ir ahttps://authDomain__/firebase/init.jsony comprobar queprojectIdcoincida con el defirebaseConfig.Si autoalojas el código de acceso, puedes usar un archivo
__/firebase/init.jsonpara proporcionar la configuración de Firebase al auxiliar de redireccionamiento del SDK de Authentication JS autoalojado. La clave de API y elprojectIdque se enumeran en este archivo de configuración deben coincidir con tufirebaseConfigde la app web.
Asegúrate de que no se haya borrado esta clave de API: Ve al panel APIs y servicios > Credenciales de la consola de Google Cloud, en el que se enumeran todas las claves de API de tu proyecto.
Si no se borró
Browser key, verifica lo siguiente:Asegúrate de que la API de Firebase Authentication esté en la lista de APIs permitidas para que la clave pueda acceder (obtén más información sobre las restricciones de API para claves de API).
Si autoalojas el código de acceso, asegúrate de que la clave de API que aparece en el archivo
__/firebase/init.jsoncoincida con la clave de API de la consola de Google Cloud. Corrige la clave en el archivo, si es necesario, y vuelve a implementar la app.Si se borró el
Browser key, puedes hacer que Firebase genere una clave de API nueva para ti: En la consola deBrowser key, ve asettings > Configuración del proyecto y, luego, en la sección Tus apps, haz clic en tu app web. Esta acción crea automáticamente una clave de API que puedes ver en la sección Configuración y configuración del SDK de tu app web.Firebase
Ten en cuenta que, en la consola de Google Cloud, esta nueva clave de API no se llamará
Browser key, sino que tendrá el mismo nombre que el sobrenombre de tu app web de Firebase. Si decides agregar restricciones de API a esta clave de API nueva, asegúrate de que la API de Firebase Authentication esté en la lista de APIs permitidas.Una vez que crees tu nueva clave de API, completa los pasos correspondientes a continuación:
Si usas URLs de Hosting reservadas, vuelve a implementar tu app en Firebase para que pueda obtener automáticamente la clave de API nueva con el resto de la configuración de Firebase.
Si autoalojas el código de acceso, copia la nueva clave de API y agrégala a tu archivo
__/firebase/init.json. Luego, vuelve a implementar la app.
¿Cómo creo un cliente web de OAuth de forma manual?
Abre la página Credenciales de la consola de Google Cloud.
En la parte superior de la página, selecciona Crear credenciales > ID de cliente de OAuth.
Si se te solicita que configures la pantalla de consentimiento, sigue las instrucciones en pantalla y, luego, continúa con los siguientes pasos de estas Preguntas frecuentes.
Crea el cliente web de OAuth:
En Tipo de aplicación, selecciona Aplicación web.
En Orígenes autorizados de JavaScript, agrega lo siguiente:
http://localhosthttp://localhost:5000https://PROJECT_ID.firebaseapp.comhttps://PROJECT_ID.web.app
Para los URIs de redireccionamiento autorizados, agrega lo siguiente:
https://PROJECT_ID.firebaseapp.com/__/auth/handlerhttps://PROJECT_ID.web.app/__/auth/handler
Guarda el cliente de OAuth.
Copia el nuevo ID de cliente y el secreto de cliente de OAuth en el portapapeles.
En Firebase console, abre la sección Authentication.
En la pestaña Método de acceso, abre el proveedor de Acceso con Google y pega el ID de cliente y el secreto del servidor web que acabas de crear y copiar de la consola de Google Cloud. Haga clic en Guardar.
¿Cómo se determina %APP_NAME% para la plantilla de correo electrónico del correo electrónico de confirmación que se puede enviar a un usuario cuando este se registra con una dirección de correo electrónico y una contraseña?
Antes de diciembre de 2022, %APP_NAME% de la plantilla de correo electrónico se completaba con el nombre de la marca de OAuth que se aprovisionaba automáticamente cada vez que se registraba una app para Android en el proyecto de Firebase. Ahora, como la marca de OAuth se aprovisiona solo cuando el Acceso con Google está habilitado, lo siguiente describe cómo se determina %APP_NAME%:
Si el nombre de la marca de OAuth está disponible,
%APP_NAME%en la plantilla de correo electrónico será el nombre de la marca de OAuth (igual que el comportamiento anterior a diciembre de 2022).Si el nombre de marca de OAuth no está disponible, así es como se determina
%APP_NAME%en la plantilla de correo electrónico:En el caso de las apps web,
%APP_NAME%será el nombre del sitio predeterminado de Firebase Hosting (el valor anterior a.firebaseapp.comy.web.app, que suele ser el ID del proyecto de Firebase).En apps para dispositivos móviles:
Si el nombre del paquete de Android o el ID del paquete de iOS están presentes en la solicitud,
%APP_NAME%será el nombre de la app que se usará en Play Store o App Store (respectivamente).De lo contrario,
%APP_NAME%será el nombre del sitio predeterminado de Firebase Hosting (el valor anterior a.firebaseapp.comy.web.app, que suele ser el ID del proyecto de Firebase).
Ten en cuenta que, si falla la búsqueda del nombre del sitio predeterminado de Firebase Hosting, el resguardo final es usar el ID del proyecto de Firebase como
%APP_NAME%.