Antes de que empieces
Antes de poder usar la autenticación de Firebase , debe hacer lo siguiente:
- Registra tu proyecto de Unity con tu proyecto de Firebase.
- Agregue el SDK de Firebase Unity (específicamente,
FirebaseAuth.unitypackage
) a su proyecto de Unity.
Encuentra instrucciones detalladas para estos pasos de configuración inicial en Agrega Firebase a tu 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 en su servidor de autenticación.
Autenticar con Firebase
La claseFirebaseAuth
es la puerta de enlace para todas las llamadas a la API. Es accesible a través de FirebaseAuth.DefaultInstance .Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Llame a 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álidos.
- Después de recibir el token personalizado de su servidor de autenticación, páselo a
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
para iniciar sesión en el 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.FirebaseUser newUser = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", newUser.DisplayName, newUser.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 sus aplicaciones, puede obtener la información básica del perfil del usuario del 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 sus Reglas de seguridad de Firebase Realtime Database y Cloud Storage, puede obtener el ID de usuario único del usuario que inició sesión 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 varios 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();