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

Autenticare con Firebase utilizzando gli account basati su password utilizzando Unity

Puoi utilizzare l'autenticazione Firebase per consentire agli utenti di autenticarsi con Firebase utilizzando i loro indirizzi e-mail e password e per gestire gli account basati su password della tua app.

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).

Accedi alla classe Firebase.Auth.FirebaseAuth

La classe FirebaseAuth è il gateway per tutte le chiamate API. È accessibile tramite FirebaseAuth.DefaultInstance .
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Crea un account basato su password

Per creare un nuovo account utente con una password, completare i seguenti passaggi nel codice di accesso dell'app:

  1. Quando un nuovo utente si registra utilizzando il modulo di registrazione della tua app, completa tutti i passaggi di convalida del tuo nuovo account richiesti dalla tua app, come la verifica che la password del nuovo account sia stata digitata correttamente e soddisfi i requisiti di complessità.
  2. Crea un nuovo account passando l'indirizzo e-mail e la password del nuovo utente a FirebaseAuth.CreateUserWithEmailAndPassword :
    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 a un utente con un indirizzo email e una password

I passaggi per l'accesso a un utente con una password sono simili ai passaggi per la creazione di un nuovo account. Nella funzione di accesso della tua app, procedi come segue:

  1. Quando un utente accede alla tua app, passa l'indirizzo e-mail e la password dell'utente a FirebaseAuth.SignInWithEmailAndPassword :
    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);
    });
    
  2. Puoi anche creare le credenziali e accedere come gli altri flussi di lavoro:
    Firebase.Auth.Credential credential =
        Firebase.Auth.EmailAuthProvider.GetCredential(email, password);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

Prossimi passi

Dopo che un utente accede per la prima volta, viene creato un nuovo account utente e collegato alle credenziali, ovvero nome utente e password, numero di telefono o informazioni del provider di autenticazione, con cui l'utente ha effettuato l'accesso. Questo nuovo account viene archiviato come parte del progetto Firebase e può essere utilizzato per identificare un utente in ogni app del progetto, indipendentemente da come l'utente accede.

  • Nelle tue app puoi ottenere le informazioni di base sul profilo dell'utente dall'oggetto 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;
    }
    
  • Nelle regole di sicurezza di Firebase Realtime Database e Cloud Storage, è possibile ottenere l'ID utente univoco dell'utente connesso dalla variabile auth e utilizzarlo per controllare a quali dati può accedere un utente.

Puoi consentire agli utenti di accedere alla tua app utilizzando più provider di autenticazione collegando le credenziali del provider di autenticazione a un account utente esistente.

Per disconnettere un utente, chiamare SignOut() :

auth.SignOut();