Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Autenticati con Firebase utilizzando account basati su password utilizzando Unity

Puoi utilizzare Firebase Authentication per consentire ai tuoi 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 Firebase Authentication , devi:

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

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

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

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

Tieni presente che l'aggiunta di Firebase al tuo progetto Unity implica attività sia nella console Firebase che nel tuo progetto Unity aperto (ad esempio, scarichi i file di configurazione di Firebase dalla console, quindi li sposti nel tuo 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, completa i seguenti passaggi nel codice di accesso della tua app:

  1. Quando un nuovo utente si registra utilizzando il modulo di registrazione della tua app, completa tutti i nuovi passaggi di convalida dell'account richiesti dalla tua app, come la verifica che la password del nuovo account sia stata digitata correttamente e soddisfi i tuoi requisiti di complessità.
  2. Crea un nuovo account passando l'indirizzo email 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 accedere a un utente con una password sono simili ai passaggi per creare un nuovo account. Nella funzione di accesso della tua app, procedi come segue:

  1. Quando un utente accede alla tua app, passa l'indirizzo email 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 la credenziale 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 il nome utente e la password, il numero di telefono o le 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 effettua l'accesso.

  • Nelle tue app, puoi ottenere le informazioni di base del 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 Firebase Realtime Database e Cloud Storage, puoi ottenere l'ID utente univoco dell'utente connesso dalla variabile auth e utilizzarlo per controllare i dati a cui un utente può accedere.

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, chiama SignOut() :

auth.SignOut();