Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

התחל בעבודה עם אימות Firebase באחדות

אתה יכול להשתמש באימות Firebase כדי לאפשר למשתמשים להיכנס למשחק שלך באמצעות שיטת כניסה אחת או יותר, כולל כניסה באמצעות כתובת דוא"ל וסיסמה, וספקי זהות מאוחדים כגון כניסה של Google וכניסה לפייסבוק. הדרכה זו תתחיל עם אימות Firebase על ידי מראה כיצד להוסיף כתובת דוא"ל וכניסה לסיסמה למשחק שלך.

לפני שאתה מתחיל

לפני שתוכל להשתמש באימות Firebase , עליך:

  • רשום את פרויקט Unity שלך והגדר אותו לשימוש ב- Firebase.

    • אם פרויקט האחדות שלך כבר משתמש ב- Firebase, הוא כבר רשום ומוגדר ל- Firebase.

    • אם אין לך פרויקט Unity, תוכל להוריד אפליקציה לדוגמה .

  • הוסף את SDK Firebase Unity (במיוחד FirebaseAuth.unitypackage ) לפרויקט Unity שלך.

שים לב שהוספת Firebase לפרויקט Unity שלך כוללת משימות הן במסוף Firebase והן בפרויקט Unity הפתוח שלך (לדוגמה, אתה מוריד קבצי תצורה של Firebase מהקונסולה ואז מעביר אותם לפרויקט Unity שלך).

הרשמו משתמשים חדשים

צור טופס המאפשר למשתמשים חדשים להירשם למשחק שלך באמצעות כתובת הדוא"ל והסיסמה שלהם. כאשר משתמש CreateUserWithEmailAndPasswordAsync את הטופס, אמת את כתובת הדוא"ל והסיסמה שסופקו על ידי המשתמש, ואז העביר אותם לשיטת 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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

היכנס למשתמשים קיימים

צור טופס המאפשר למשתמשים קיימים להיכנס באמצעות כתובת הדוא"ל והסיסמה שלהם. כאשר משתמש SignInWithEmailAndPasswordAsync את הטופס, התקשר לשיטת 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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

הגדר מטפל אירועים בשינוי מצב אימות וקבל נתוני משתמש

כדי להגיב לאירועי כניסה ויציאה, צרף מטפל באירועים לאובייקט האימות הגלובלי. מטפל זה מתקשר בכל פעם שמצב הכניסה של המשתמש משתנה. מכיוון שהמטפל פועל רק לאחר שאובייקט האימות מתחיל לחלוטין ולאחר סיום שיחות רשת, זהו המקום הטוב ביותר לקבל מידע אודות המשתמש המחובר.

רשום את מטפל האירועים באמצעות השדה StateChanged של האובייקט FirebaseAuth . כאשר משתמש נכנס בהצלחה, תוכל לקבל מידע על המשתמש במטפל האירועים.

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

הצעדים הבאים

למד כיצד להוסיף תמיכה לספקי זהות אחרים ולחשבונות אורחים אנונימיים: