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

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

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

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

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

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

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

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

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

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

צור טופס המאפשר למשתמשים חדשים להירשם למשחק שלך באמצעות כתובת הדוא"ל שלהם וסיסמה. כשמשתמש משלים את הטופס, לאמת את כתובת הדוא"ל והסיסמה שסופקו על ידי המשתמש, ולאחר מכן לעבור אותם 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 השיטה:

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);
});

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

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

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

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

הצעדים הבאים

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