Antes de que empieces
Antes de poder utilizar Firebase Authentication , debes:
- Registre su proyecto de Unity con su proyecto de Firebase.
- Agregue el SDK de Firebase Unity (específicamente,
FirebaseAuth.unitypackage
) a su proyecto de Unity.
Encuentre instrucciones detalladas para estos pasos de configuración iniciales en Agregar Firebase a su proyecto de Unity .
- Obtenga las claves del servidor de su proyecto:
- Vaya a la página Cuentas de servicio en la configuración de su proyecto.
- Haga clic en Generar nueva clave privada en la parte inferior de la sección Firebase Admin SDK de la página Cuentas de servicio .
- El par de claves pública/privada de la nueva cuenta de servicio se guarda automáticamente en su computadora. Copie este archivo a su servidor de autenticación.
Autenticar con Firebase
La claseFirebaseAuth
es la puerta de entrada para todas las llamadas API. Se puede acceder a él a través de FirebaseAuth.DefaultInstance .Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Llame Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
con el token de su servidor de autenticación.
- Cuando los usuarios inicien sesión en su aplicación, envíe sus credenciales de inicio de sesión (por ejemplo, su nombre de usuario y contraseña) a su servidor de autenticación. Su servidor verifica las credenciales y devuelve un token personalizado si son válidas.
- Después de recibir el token personalizado de su servidor de autenticación, páselo a
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
para iniciar sesión como usuario:auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCustomTokenAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCustomTokenAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
Próximos pasos
Después de que un usuario inicia sesión por primera vez, se crea una nueva cuenta de usuario y se vincula a las credenciales (es decir, el nombre de usuario y la contraseña, el número de teléfono o la información del proveedor de autenticación) con las que el usuario inició sesión. Esta nueva cuenta se almacena como parte de su proyecto de Firebase y se puede usar para identificar a un usuario en cada aplicación de su proyecto, independientemente de cómo inicie sesión el usuario.
En tus aplicaciones, puedes obtener la información básica del perfil del usuario desde el objeto
Firebase.Auth.FirebaseUser
:Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { string name = user.DisplayName; string email = user.Email; System.Uri photo_url = user.PhotoUrl; // The user's Id, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, if you // have one; use User.TokenAsync() instead. string uid = user.UserId; }
En las reglas de seguridad de Firebase Realtime Database y Cloud Storage, puede obtener el ID de usuario único del usuario que inició sesión a partir de la variable
auth
y usarlo para controlar a qué datos puede acceder un usuario.
Puede permitir que los usuarios inicien sesión en su aplicación utilizando múltiples proveedores de autenticación vinculando las credenciales del proveedor de autenticación a una cuenta de usuario existente.
Para cerrar la sesión de un usuario, llame a SignOut()
:
auth.SignOut();