Google 致力于为黑人社区推动种族平等。查看具体举措

Premiers pas avec l'authentification Firebase dans Unity

Vous pouvez utiliser l'authentification Firebase pour permettre aux utilisateurs de se connecter à votre jeu à l'aide d'une ou plusieurs méthodes de connexion, y compris la connexion par adresse e-mail et mot de passe, et les fournisseurs d'identité fédérés tels que Google Sign-in et Facebook Login. Ce didacticiel vous permet de démarrer avec Firebase Authentication en vous montrant comment ajouter une adresse e-mail et un mot de passe de connexion à votre jeu.

Avant que tu commences

Avant de pouvoir utiliser Firebase authentification , vous devez:

  • Enregistrez votre projet Unity et configurez-le pour utiliser Firebase.

    • Si votre projet Unity utilise déjà Firebase, il est déjà enregistré et configuré pour Firebase.

    • Si vous ne disposez pas d' un projet Unity, vous pouvez télécharger une application de l' échantillon .

  • Ajouter l' unité Firebase SDK (spécifiquement, FirebaseAuth.unitypackage ) à votre projet Unity.

Notez que l' ajout Firebase à votre projet Unity implique des tâches à la fois dans la console Firebase et dans votre projet open unité (par exemple, vous téléchargez des fichiers de configuration Firebase de la console, puis de les déplacer dans votre projet Unity).

Inscrivez de nouveaux utilisateurs

Créez un formulaire qui permet aux nouveaux utilisateurs de s'inscrire à votre jeu en utilisant leur adresse e-mail et un mot de passe. Lorsqu'un utilisateur remplit le formulaire, valider l'adresse e - mail et mot de passe fourni par l'utilisateur, puis les passer à la CreateUserWithEmailAndPasswordAsync méthode:

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);
});

Connectez-vous aux utilisateurs existants

Créez un formulaire permettant aux utilisateurs existants de se connecter à l'aide de leur adresse e-mail et de leur mot de passe. Lorsqu'un utilisateur remplit le formulaire, appelez la SignInWithEmailAndPasswordAsync méthode:

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);
});

Définir un gestionnaire d'événements de changement d'état d'authentification et obtenir les données utilisateur

Pour répondre aux événements de connexion et de déconnexion, attachez un gestionnaire d'événements à l'objet d'authentification globale. Ce gestionnaire est appelé chaque fois que l'état de connexion de l'utilisateur change. Étant donné que le gestionnaire s'exécute uniquement après l'initialisation complète de l'objet d'authentification et la fin des appels réseau, c'est le meilleur endroit pour obtenir des informations sur l'utilisateur connecté.

Enregistrez le gestionnaire d'événements à l' aide du FirebaseAuth de l' objet StateChanged champ. Lorsqu'un utilisateur se connecte avec succès, vous pouvez obtenir des informations sur l'utilisateur dans le gestionnaire d'événements.

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

Prochaines étapes

Découvrez comment ajouter la prise en charge d'autres fournisseurs d'identité et de comptes invités anonymes :