Autentica con Firebase mediante un sistema de autenticación personalizado
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Puedes integrar Firebase Authentication con un sistema de autenticación personalizado. Para ello, cambia el servidor de autenticación para que genere tokens firmados personalizados cuando un usuario acceda de forma correcta. La app recibe este token y lo usa para realizar la autenticación en Firebase.
Antes de comenzar
- Si aún no lo hiciste, sigue los pasos de la guía Cómo comenzar.
- Instala y configura el SDK de Firebase Admin.
Asegúrate de inicializar el SDK
con las credenciales correctas para tu proyecto de Firebase.
Autentica con Firebase
Cuando los usuarios accedan a la app, envía sus credenciales de acceso (por
ejemplo, el nombre de usuario y la contraseña) al servidor de autenticación. El
servidor verifica las credenciales y, si son válidas,
crea un token de Firebase personalizado
y lo envía a tu app.
Después de recibir el token personalizado de tu servidor de autenticación, pásalo
a signInWithCustomToken()
para que el usuario acceda:
try {
final userCredential =
await FirebaseAuth.instance.signInWithCustomToken(token);
print("Sign-in successful.");
} on FirebaseAuthException catch (e) {
switch (e.code) {
case "invalid-custom-token":
print("The supplied token is not a Firebase custom auth token.");
break;
case "custom-token-mismatch":
print("The supplied token is for a different Firebase project.");
break;
default:
print("Unknown error.");
}
}
Próximos pasos
Cuando un usuario crea una cuenta nueva, esta se almacena como parte de tu
proyecto de Firebase y se puede usar para identificar a un usuario en todas las apps del
proyecto, sin importar el método de acceso que usó.
En tus apps, puedes obtener la información básica de perfil del usuario a partir del
objeto User
. Consulta Administrar usuarios.
En tus reglas de seguridad de Firebase Realtime Database y Cloud Storage, puedes
obtener el ID del usuario único que accedió a partir de la variable auth
y usarlo para
controlar a qué datos podrá acceder.
Para permitir que los usuarios accedan a la app con varios proveedores de
autenticación, puedes vincular las credenciales de estos proveedores con una
cuenta de usuario existente.
Para salir de la sesión de un usuario, llama a signOut()
:
await FirebaseAuth.instance.signOut();
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-04 (UTC)
[null,null,["Última actualización: 2025-08-04 (UTC)"],[],[],null,["\u003cbr /\u003e\n\nYou can integrate Firebase Authentication with a custom authentication system by\nmodifying your authentication server to produce custom signed tokens when a user\nsuccessfully signs in. Your app receives this token and uses it to authenticate\nwith Firebase.\n\nBefore you begin\n\n1. If you haven't already, follow the steps in the [Get started](/docs/auth/flutter/start) guide.\n2. [Install and configure the Firebase Admin SDK](/docs/admin/setup). Be sure to [initialize the SDK](/docs/admin/setup#initialize-sdk) with the correct credentials for your Firebase project.\n\nAuthenticate with Firebase\n\n1. When users sign in to your app, send their sign-in credentials (for\n example, their username and password) to your authentication server. Your\n server checks the credentials and, if they are valid,\n [creates a custom Firebase token](/docs/auth/admin/create-custom-tokens)\n and sends the token back to your app.\n\n2. After you receive the custom token from your authentication server, pass it\n to `signInWithCustomToken()` to sign in the user:\n\n try {\n final userCredential =\n await FirebaseAuth.instance.signInWithCustomToken(token);\n print(\"Sign-in successful.\");\n } on FirebaseAuthException catch (e) {\n switch (e.code) {\n case \"invalid-custom-token\":\n print(\"The supplied token is not a Firebase custom auth token.\");\n break;\n case \"custom-token-mismatch\":\n print(\"The supplied token is for a different Firebase project.\");\n break;\n default:\n print(\"Unknown error.\");\n }\n }\n\nNext steps\n\nAfter a user creates a new account, this account is stored as part of your\nFirebase project, and can be used to identify a user across every app in your\nproject, regardless of what sign-in method the user used.\n\nIn your apps, you can get the user's basic profile information from the\n`User` object. See [Manage Users](/docs/auth/flutter/manage-users).\n\nIn your Firebase Realtime Database and Cloud Storage Security Rules, you can\nget the signed-in user's unique user ID from the `auth` variable, and use it to\ncontrol what data a user can access.\n\nYou can allow users to sign in to your app using multiple authentication\nproviders by [linking auth provider credentials](/docs/auth/flutter/account-linking)) to an\nexisting user account.\n\nTo sign out a user, call `signOut()`: \n\n await FirebaseAuth.instance.signOut();"]]