ניתן לאפשר למשתמשים לבצע אימות ב-Firebase באמצעות חשבונות Google שלהם: שילוב של כניסה באמצעות חשבון Google באפליקציה.
לפני שמתחילים
לפני שמשתמשים Firebase Authentication, צריך:
רושמים את הפרויקט ב-Unity ומגדירים אותו לשימוש ב-Firebase.
אם כבר משתמשים ב-Firebase בפרויקט שלכם ב-Unity, הוא כבר רשום ב-Firebase ועבר הגדרה.
אם אין לכם פרויקט ב-Unity, ניתן להוריד אפליקציה לדוגמה.
מוסיפים את Firebase Unity SDK (במיוחד
FirebaseAuth.unitypackage
) לפרויקט ב-Unity.
חשוב לזכור שההוספה של Firebase לפרויקט Unity כוללת משימות, במסוף Firebase ובפרויקט Unity הפתוח (לדוגמה, אתם מורידים קובצי תצורה של Firebase מהמסוף, ואז מעבירים אותם בפרויקט ב-Unity).
גישה לכיתה Firebase.Auth.FirebaseAuth
המחלקה FirebaseAuth
היא השער לכל הקריאות ל-API.
אפשר לגשת אליה דרך FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
אימות באמצעות Firebase
- יש לפעול לפי ההוראות ל-Android ול-iOS+ כדי לקבל אסימון מזהה לכניסה באמצעות חשבון Google.
- אחרי שמשתמש נכנס, מחליפים את אסימון הגישה ב
פרטי כניסה ל-Firebase ואימות מול Firebase באמצעות Firebase
פרטי כניסה:
Firebase.Auth.Credential credential = Firebase.Auth.GoogleAuthProvider.GetCredential(googleIdToken, googleAccessToken); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync 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); });
השלבים הבאים
אחרי שמשתמש נכנס לחשבון בפעם הראשונה, נוצר חשבון משתמש חדש שמקושר לפרטי הכניסה – כלומר שם המשתמש והסיסמה, מספר הטלפון או פרטי ספק האימות – שבאמצעותם המשתמש נכנס לחשבון. החדש הזה מאוחסנים כחלק מפרויקט Firebase, וניתן להשתמש בהם כדי לזהות משתמש בכל האפליקציות בפרויקט, בלי קשר לאופן שבו המשתמשים נכנסים לחשבון.
-
באפליקציות, אפשר לקבל את פרטי הפרופיל הבסיסיים של המשתמש מהאובייקט
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; }
בכללי האבטחה של Firebase Realtime Database ו-Cloud Storage, אפשר לקבל את מזהה המשתמש הייחודי של המשתמש שנכנס לחשבון מהמשתנה
auth
, ולהשתמש בו כדי לקבוע לאילו נתונים למשתמש תהיה גישה.
כדי לאפשר למשתמשים להיכנס לאפליקציה באמצעות כמה ספקי אימות, אפשר לקשר את פרטי הכניסה של ספק האימות לחשבון משתמש קיים.
כדי להוציא משתמש, קוראים לפונקציה
SignOut()
:
auth.SignOut();