Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
דף זה תורגם על ידי 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 :

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

הצעדים הבאים

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