Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

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

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

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

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

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

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

  • הוסף את Firebase Unity SDK (באופן ספציפי, 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 :

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

הצעדים הבאים

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