Vous pouvez utiliser Firebase Authentication pour autoriser les utilisateurs à se connecter à votre jeu avec un ou d'autres méthodes de connexion, y compris la connexion par adresse e-mail et par mot de passe, et d'identité fédérée tels que Google Sign-In et Facebook Login. Ce ce tutoriel vous montre comment ajouter Firebase Authentication votre adresse e-mail et votre mot de passe pour vous connecter à votre jeu.
Avant de commencer
Avant de pouvoir utiliser Firebase Authentication 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 n'avez pas de projet Unity, vous pouvez télécharger un application exemple.
Ajoutez le SDK Unity Firebase (plus précisément,
FirebaseAuth.unitypackage
) pour votre projet Unity.
Notez que l'ajout de Firebase à votre projet Unity implique des tâches dans le Console Firebase et dans votre projet Unity ouvert Par exemple, vous téléchargez les fichiers de configuration Firebase depuis la console, puis vous déplacez dans votre projet Unity).
Inscrire de nouveaux utilisateurs
Créez un formulaire permettant aux nouveaux utilisateurs de s'inscrire à votre jeu à l'aide de leur adresse e-mail
une adresse e-mail et un mot de passe. Lorsqu'un utilisateur remplit le formulaire, valider l'e-mail
et le mot de passe fournis par l'utilisateur, puis les transmettre au
Méthode 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);
});
Connecter les utilisateurs existants
Créer un formulaire permettant aux utilisateurs existants de se connecter à l'aide de leur adresse e-mail
et un mot de passe. Lorsqu'un utilisateur remplit le formulaire, appelez la méthode
Méthode 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);
});
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, associez un gestionnaire d'événements au d'authentification unique. Ce gestionnaire est appelé dès que la connexion de l'utilisateur les changements d'état. Comme le gestionnaire ne s'exécute qu'une fois que l'objet d'authentification est entièrement initialisé. Une fois les appels réseau effectués, il est préférable pour obtenir des informations sur l'utilisateur connecté.
Enregistrez le gestionnaire d'événements à l'aide du champ StateChanged
de l'objet FirebaseAuth
. Lorsqu'un utilisateur se connecte, vous pouvez obtenir des informations sur cet utilisateur dans le gestionnaire d'événements.
Enfin, lorsque Destroy
est appelé pour cet objet, il appelle automatiquement
OnDestroy
Nettoyez les références de l'objet Auth dans 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;
}
Étapes suivantes
Découvrez comment ajouter la compatibilité avec d'autres fournisseurs d'identité et des comptes invités anonymes :