כדי לאפשר למשתמשים לבצע אימות ב-Firebase באמצעות חשבונות GitHub שלהם, אפשר לשלב את אימות GitHub באפליקציה.
לפני שמתחילים
כדי להשתמש ב-Firebase Authentication, צריך:
רושמים את הפרויקט ב-Unity ומגדירים אותו לשימוש ב-Firebase.
אם בפרויקט Unity שלכם כבר נעשה שימוש ב-Firebase, הוא כבר מוגדר רשומה והוגדרה ל-Firebase.
אם אין לכם פרויקט ב-Unity, תוכלו להוריד אפליקציה לדוגמה.
מוסיפים את Firebase Unity SDK (במיוחד
FirebaseAuth.unitypackage
) לפרויקט ב-Unity.
חשוב לזכור שהוספת Firebase לפרויקט ב-Unity כוללת משימות גם במסוף Firebase וגם בפרויקט הפתוח ב-Unity (לדוגמה, מורידים קובצי תצורה של Firebase מהמסוף ומעבירים אותם לפרויקט ב-Unity).
גישה לכיתה Firebase.Auth
הכיתה FirebaseAuth
היא השער לכל הקריאות ל-API.
אפשר לגשת אליו דרך FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
אימות באמצעות Firebase
- יש לפעול לפי ההוראות ל-Android ול-iOS+ כדי לקבל אסימון למשתמש שמחובר ב-GitHub.
- אחרי שהמשתמש נכנס לחשבון, מחליפים את אסימון הגישה בפרטי כניסה ל-Firebase ומבצעים אימות ב-Firebase באמצעות פרטי הכניסה ל-Firebase:
Firebase.Auth.Credential credential = Firebase.Auth.GitHubAuthProvider.GetCredential(accessToken); 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();