Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Comenzar con la autenticación de Firebase en Unity

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Puede usar Firebase Authentication para permitir que los usuarios inicien sesión en su juego usando uno o más métodos de inicio de sesión, incluido el inicio de sesión con dirección de correo electrónico y contraseña, y proveedores de identidad federados, como el inicio de sesión de Google y el inicio de sesión de Facebook. Este tutorial lo inicia con Firebase Authentication y le muestra cómo agregar una dirección de correo electrónico y una contraseña para iniciar sesión en su juego.

Antes de que empieces

Antes de poder usar la autenticación de Firebase , debe hacer lo siguiente:

  • Registra tu proyecto de Unity y configúralo para usar Firebase.

    • Si su proyecto de Unity ya usa Firebase, entonces ya está registrado y configurado para Firebase.

    • Si no tiene un proyecto de Unity, puede descargar una aplicación de muestra .

  • Agregue el SDK de Firebase Unity (específicamente, FirebaseAuth.unitypackage ) a su proyecto de Unity.

Tenga en cuenta que agregar Firebase a su proyecto de Unity implica tareas tanto en la consola de Firebase como en su proyecto de Unity abierto (por ejemplo, descarga archivos de configuración de Firebase desde la consola y luego los mueve a su proyecto de Unity).

Registrar nuevos usuarios

Cree un formulario que permita a los nuevos usuarios registrarse en su juego utilizando su dirección de correo electrónico y una contraseña. Cuando un usuario complete el formulario, valide la dirección de correo electrónico y la contraseña proporcionadas por el usuario, luego páselas al método CreateUserWithEmailAndPasswordAsync :

auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  // Firebase user has been created.
  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Iniciar sesión de usuarios existentes

Cree un formulario que permita a los usuarios existentes iniciar sesión con su dirección de correo electrónico y contraseña. Cuando un usuario complete el formulario, llame al método SignInWithEmailAndPasswordAsync :

auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Establezca un controlador de eventos de cambio de estado de autenticación y obtenga datos de usuario

Para responder a los eventos de inicio y cierre de sesión, adjunte un controlador de eventos al objeto de autenticación global. Se llama a este controlador cada vez que cambia el estado de inicio de sesión del usuario. Debido a que el controlador se ejecuta solo después de que el objeto de autenticación se haya inicializado por completo y después de que se hayan completado las llamadas de red, es el mejor lugar para obtener información sobre el usuario que inició sesión.

Registre el controlador de eventos mediante el campo StateChanged del objeto FirebaseAuth . Cuando un usuario inicia sesión correctamente, puede obtener información sobre el usuario en el controlador de eventos.

Finalmente, cuando este objeto tiene Destroy llamado, automáticamente llamará a OnDestroy . Limpie las referencias del objeto Auth en OnDestroy .

void InitializeFirebase() {
  auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
  auth.StateChanged += AuthStateChanged;
  AuthStateChanged(this, null);
}

void AuthStateChanged(object sender, System.EventArgs eventArgs) {
  if (auth.CurrentUser != user) {
    bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;
    if (!signedIn && user != null) {
      DebugLog("Signed out " + user.UserId);
    }
    user = auth.CurrentUser;
    if (signedIn) {
      DebugLog("Signed in " + user.UserId);
      displayName = user.DisplayName ?? "";
      emailAddress = user.Email ?? "";
      photoUrl = user.PhotoUrl ?? "";
    }
  }
}

void OnDestroy() {
  auth.StateChanged -= AuthStateChanged;
  auth = null;
}

Próximos pasos

Aprenda a agregar soporte para otros proveedores de identidad y cuentas de invitados anónimos: