قبل از اینکه شروع کنی
قبل از اینکه بتوانید از Firebase Authentication استفاده کنید، باید:
- پروژه Unity خود را با پروژه Firebase خود ثبت کنید.
- Firebase Unity SDK (مخصوصا
FirebaseAuth.unitypackage
) را به پروژه Unity خود اضافه کنید.
دستورالعمل های دقیق برای این مراحل اولیه راه اندازی را در افزودن Firebase به پروژه Unity خود بیابید.
- کلیدهای سرور پروژه خود را دریافت کنید:
- در تنظیمات پروژه خود به صفحه حساب های سرویس بروید .
- روی Generate New Private Key در پایین بخش Firebase Admin SDK صفحه حسابهای سرویس کلیک کنید.
- جفت کلید عمومی/خصوصی حساب سرویس جدید به طور خودکار در رایانه شما ذخیره می شود. این فایل را در سرور احراز هویت خود کپی کنید.
با Firebase احراز هویت
کلاسFirebaseAuth
دروازه همه تماسهای API است. از طریق FirebaseAuth.DefaultInstance قابل دسترسی است.Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
را با توکن سرور احراز هویت خود تماس بگیرید.
- وقتی کاربران وارد برنامه شما میشوند، اعتبارنامه ورود به سیستم (به عنوان مثال، نام کاربری و رمز عبور آنها) را به سرور احراز هویت خود ارسال کنید. سرور شما اعتبارنامه ها را بررسی می کند و در صورت معتبر بودن یک توکن سفارشی برمی گرداند.
- پس از دریافت رمز سفارشی از سرور احراز هویت خود، آن را به
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
ارسال کنید تا وارد کاربر شوید:auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCustomTokenAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCustomTokenAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.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 Realtime Database و Cloud Storage، میتوانید شناسه کاربری منحصر به فرد کاربر واردشده به سیستم را از متغیر
auth
دریافت کنید و از آن برای کنترل دادههایی که کاربر میتواند به آن دسترسی داشته باشد استفاده کنید.
میتوانید به کاربران اجازه دهید با استفاده از چندین ارائهدهنده احراز هویت، با پیوند دادن اعتبار ارائهدهنده تأیید اعتبار به یک حساب کاربری موجود، به برنامه شما وارد شوند.
برای خروج از سیستم کاربر، SignOut()
را فراخوانی کنید:
auth.SignOut();