Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Inizia con l'autenticazione Firebase in Unity

Puoi utilizzare l'autenticazione Firebase per consentire agli utenti di accedere al tuo gioco utilizzando uno o più metodi di accesso, inclusi indirizzo e-mail e accesso con password e provider di identità federati come Google Sign-in e Facebook Login. In questa esercitazione viene avviata l'autenticazione Firebase, che mostra come aggiungere l'indirizzo e-mail e la password di accesso al gioco.

Prima di iniziare

Prima di poter utilizzare l' autenticazione Firebase , è necessario:

  • Registra il tuo progetto Unity e configuralo per usare Firebase.

    • Se il tuo progetto Unity utilizza già Firebase, è già registrato e configurato per Firebase.

    • Se non si dispone di un progetto Unity, è possibile scaricare un'app di esempio .

  • Aggiungi l' SDK di Firebase Unity (in particolare, FirebaseAuth.unitypackage ) al tuo progetto Unity.

Si noti che l'aggiunta di Firebase al progetto Unity implica attività sia nella console Firebase che nel progetto Unity aperto (ad esempio, scaricare i file di configurazione di Firebase dalla console, quindi spostarli nel progetto Unity).

Iscriviti nuovi utenti

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

Accedi agli utenti esistenti

Crea un modulo che consenta agli utenti esistenti di accedere utilizzando il loro indirizzo e-mail e la loro password. Quando un utente completa il modulo, chiama il 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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});
 

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

Per rispondere agli eventi di accesso e disconnessione, collegare un gestore eventi all'oggetto di autenticazione globale. 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 che tutte le chiamate di rete sono state completate, è il posto migliore per ottenere informazioni sull'utente che ha effettuato l'accesso.

Registrare il gestore eventi utilizzando il campo StateChanged dell'oggetto FirebaseAuth . Quando un utente accede correttamente, è possibile ottenere informazioni sull'utente nel gestore eventi.

 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 ?? "";
    }
  }
}
 

Prossimi passi

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