Puedes integrar el servicio de Acceso con Facebook a la app para permitir que los usuarios se autentiquen en Firebase con sus cuentas de Facebook.
Antes de comenzar
Para poder usar Firebase Authentication, debes realizar los siguientes pasos:
Registra tu proyecto de Unity y configúralo para usar Firebase.
Si tu proyecto de Unity ya usa Firebase, significa que ya está registrado y configurado para Firebase.
Si aún no tienes un proyecto de Unity, puedes descargar una app de ejemplo.
Agrega el SDK de Firebase Unity (en específico,
FirebaseAuth.unitypackage
) a tu proyecto de Unity.
Ten en cuenta que agregar Firebase a tu proyecto de Unity implica realizar tareas en Firebase console y en tu proyecto abierto de Unity (por ejemplo, descargar archivos de configuración de Firebase desde la consola y moverlos a tu proyecto de Unity).
Accede a la clase Firebase.Auth.FirebaseAuth
La clase FirebaseAuth
es la puerta de enlace para todas las llamadas a la API.
Se puede acceder a ella a través de FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Autentica con Firebase
- Sigue las instrucciones para iOS+ y Android a fin de obtener un token de acceso para el usuario de Facebook que accedió.
- Una vez que un usuario accede correctamente, intercambia el token de acceso por una credencial de Firebase y úsala para autenticar con Firebase:
Firebase.Auth.Credential credential = Firebase.Auth.FacebookAuthProvider.GetCredential(accessToken); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync 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); });
Pasos siguientes
Cuando un usuario accede por primera vez, se crea una cuenta de usuario nueva y se la vincula con las credenciales (el nombre de usuario y la contraseña, el número de teléfono o la información del proveedor de autenticación) que el usuario utilizó para acceder. Esta cuenta nueva 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 cómo acceda.
-
En tus apps, puedes obtener la información básica de perfil del usuario a partir 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 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()
de la siguiente manera:
auth.SignOut();