בצע אימות עם Firebase באמצעות חשבונות מבוססי סיסמה באמצעות Unity

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

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

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

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

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

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

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

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

גש למחלקה Firebase.Auth.FirebaseAuth

מחלקת FirebaseAuth היא השער לכל קריאות ה-API. ניתן לגשת אליו דרך FirebaseAuth.DefaultInstance .
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

צור חשבון מבוסס סיסמה

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

  1. כאשר משתמש חדש נרשם באמצעות טופס ההרשמה של האפליקציה שלך, השלם את כל שלבי אימות החשבון החדשים שהאפליקציה שלך דורשת, כגון אימות שהסיסמה של החשבון החדש הוקלדה כהלכה ועומדת בדרישות המורכבות שלך.
  2. צור חשבון חדש על ידי העברת כתובת הדוא"ל והסיסמה של המשתמש החדש ל- FirebaseAuth.CreateUserWithEmailAndPassword :
    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);
    });
    

היכנס למשתמש עם כתובת אימייל וסיסמה

השלבים לכניסה למשתמש עם סיסמה דומים לשלבים ליצירת חשבון חדש. בפונקציית הכניסה של האפליקציה שלך, בצע את הפעולות הבאות:

  1. כאשר משתמש נכנס לאפליקציה שלך, העבר את כתובת האימייל והסיסמה של המשתמש ל- FirebaseAuth.SignInWithEmailAndPassword :
    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);
    });
    
  2. אתה יכול גם ליצור את האישור ולהיכנס כמו זרימות העבודה האחרות:
    Firebase.Auth.Credential credential =
        Firebase.Auth.EmailAuthProvider.GetCredential(email, password);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.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 ואחסון בענן , תוכל לקבל את מזהה המשתמש הייחודי של המשתמש auth ממשתנה האימות, ולהשתמש בו כדי לשלוט לאילו נתונים המשתמש יכול לגשת.

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

כדי לצאת ממשתמש, התקשר ל- SignOut() :

auth.SignOut();