Inizia a utilizzare Firebase Authentication in Unity

Puoi utilizzare Firebase Authentication per consentire agli utenti di accedere al tuo gioco utilizzando uno o più metodi di accesso, tra cui l'accesso con indirizzo email e password e provider di identità federati come Google Sign-In e Facebook Login. Questo il tutorial inizia a usare Firebase Authentication mostrandoti come aggiungere indirizzo email e password per accedere al tuo gioco.

Prima di iniziare

Prima di poter utilizzare Firebase Authentication, devi:

  • Registra il tuo progetto Unity e configuralo in modo che utilizzi Firebase.

    • Se il tuo progetto Unity utilizza già Firebase, è già registrati e configurati per Firebase.

    • Se non hai un progetto Unity, puoi scaricare un'app di esempio.

  • Aggiungi l'SDK Firebase Unity (nello specifico, FirebaseAuth.unitypackage) a del tuo progetto Unity.

di Gemini Advanced.

Tieni presente che l'aggiunta di Firebase al progetto Unity comporta attività sia nel Nella console Firebase e nel progetto Unity aperto Ad esempio, scarichi dalla console i file di configurazione di Firebase, quindi li sposti nel tuo progetto Unity).

Registrare nuovi utenti

Crea un modulo che consenta ai nuovi utenti di registrarsi al tuo gioco utilizzando il loro indirizzo email un indirizzo email e una password. Quando un utente compila il modulo, convalida l'email. l'indirizzo email e la password forniti dall'utente, quindi passali al Metodo 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.AuthResult result = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      result.User.DisplayName, result.User.UserId);
});

Accedere agli utenti esistenti

Crea un modulo che consenta agli utenti esistenti di accedere con il proprio indirizzo email. e password. Quando un utente compila il modulo, richiama il metodo Metodo 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.AuthResult result = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      result.User.DisplayName, result.User.UserId);
});

Imposta un gestore di eventi di modifica dello stato dell'autenticazione e ottieni i dati utente

Per rispondere agli eventi di accesso e uscita, collega un gestore di eventi alla di autenticazione. Questo gestore viene chiamato ogni volta che cambia lo stato di accesso dell'utente. Poiché il gestore viene eseguito solo dopo che l'oggetto di autenticazione è stato completamente inizializzato e dopo il completamento di eventuali chiamate di rete, è il posto migliore per ottenere informazioni sull'utente che ha eseguito l'accesso.

Registra il gestore di eventi utilizzando l'elemento StateChanged dell'oggetto FirebaseAuth . Quando un utente accede correttamente, puoi ottenere informazioni sull'utente nel gestore di eventi.

Infine, quando questo oggetto ha la chiamata Destroy, la chiamata automaticamente OnDestroy. Elimina i riferimenti dell'oggetto Auth in 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
        && auth.CurrentUser.IsValid();
    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;
}

Passaggi successivi

Scopri come aggiungere il supporto per altri provider di identità e ospiti anonimi account: