با احراز هویت Firebase در Unity شروع کنید

شما می توانید از احراز هویت Firebase استفاده کنید تا به کاربران اجازه دهید با استفاده از یک یا چند روش ورود به سیستم ، از جمله آدرس ایمیل و ورود رمز عبور و ارائه دهندگان هویت فدرال مانند ورود به سیستم Google و ورود به سیستم فیس بوک ، وارد بازی شما شوند. این آموزش شما را با نحوه افزودن آدرس ایمیل و ورود رمز عبور به بازی خود آشنا می کند.

قبل از اینکه شروع کنی

قبل از اینکه شما می توانید استفاده کنید فایربیس احراز هویت ، شما نیاز به:

  • پروژه Unity خود را ثبت کرده و پیکربندی کنید تا از Firebase استفاده کند.

    • اگر پروژه Unity شما قبلاً از Firebase استفاده می کند ، قبلاً برای Firebase ثبت شده و پیکربندی شده است.

    • اگر شما یک پروژه وحدت را نداشته باشند، شما می توانید یک دانلود برنامه نمونه .

  • اضافه کردن فایربیس وحدت SDK (به طور خاص، FirebaseAuth.unitypackage ) به طرح وحدت خود را.

توجه داشته باشید که اضافه کردن فایربیس به پروژه وحدت خود را شامل وظایف هر دو در فایربیس کنسول و در پروژه های وحدت باز خود را (به عنوان مثال، شما دانلود فایل های پیکربندی فایربیس از کنسول، و سپس حرکت آنها را در پروژه وحدت خود را).

ثبت نام کاربران جدید

یک فرم ایجاد کنید که به کاربران جدید اجازه دهد با استفاده از آدرس ایمیل و رمز عبور خود در بازی شما ثبت نام کنند. هنگامی که یک کاربر کامل فرم، اعتبار آدرس ایمیل و رمز عبور ارائه شده توسط کاربر، سپس آنها را تصویب به 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 ?? "";
    }
  }
}

مراحل بعدی

نحوه افزودن پشتیبانی برای سایر ارائه دهندگان هویت و حسابهای مهمان ناشناس را بیاموزید: