میتوانید از Firebase Authentication برای ایجاد و استفاده از حسابهای ناشناس موقت برای احراز هویت با Firebase استفاده کنید. از این حسابهای ناشناس موقت میتوان برای اجازه دادن به کاربرانی که هنوز در برنامه شما ثبت نام نکردهاند استفاده کرد تا با دادههای محافظت شده توسط قوانین امنیتی کار کنند. اگر یک کاربر ناشناس تصمیم گرفت در برنامه شما ثبت نام کند، می توانید اعتبار ورود به سیستم او را به حساب ناشناس پیوند دهید تا بتواند در جلسات بعدی با داده های محافظت شده خود کار کند.
قبل از اینکه شروع کنی
اگر قبلاً این کار را نکرده اید، مراحل راهنمای شروع کار را دنبال کنید.
فعال کردن ورود به سیستم ناشناس:
- در بخش Authentication کنسول Firebase، صفحه روش ورود به سیستم را باز کنید.
- از صفحه روش ورود به سیستم، روش ورود به سیستم ناشناس را فعال کرده و روی ذخیره کلیک کنید.
با Firebase به صورت ناشناس احراز هویت
هنگامی که یک کاربر خارج از سیستم از یک ویژگی برنامه استفاده می کند که نیاز به احراز هویت با Firebase دارد، با فراخوانی signInAnonymously()
به طور ناشناس وارد کاربر شوید:
try {
final userCredential =
await FirebaseAuth.instance.signInAnonymously();
print("Signed in with temporary account.");
} on FirebaseAuthException catch (e) {
switch (e.code) {
case "operation-not-allowed":
print("Anonymous auth hasn't been enabled for this project.");
break;
default:
print("Unknown error.");
}
}
یک حساب کاربری ناشناس را به یک حساب دائمی تبدیل کنید
هنگامی که یک کاربر ناشناس در برنامه شما ثبت نام می کند، ممکن است بخواهید به او اجازه دهید کار خود را با حساب جدید خود ادامه دهد - برای مثال، ممکن است بخواهید مواردی را که کاربر قبل از ثبت نام به سبد خرید خود اضافه کرده است در جدید خود در دسترس قرار دهید. سبد خرید حساب برای این کار مراحل زیر را انجام دهید:
هنگامی که کاربر ثبت نام می کند، جریان ورود به سیستم ارائه دهنده احراز هویت کاربر را تا فراخوانی یکی از روش های
signInWith
- تکمیل کنید. به عنوان مثال، رمز Google ID کاربر، نشانه دسترسی فیس بوک یا آدرس ایمیل و رمز عبور را دریافت کنید.برای ارائهدهنده احراز هویت جدید یک شیء
Credential
دریافت کنید:// Google Sign-in final credential = GoogleAuthProvider.credential(idToken: idToken); // Email and password sign-in final credential = EmailAuthProvider.credential(email: emailAddress, password: password); // Etc.
شی
Credential
را بهlinkWithCredential()
کاربر ورود به سیستم ارسال کنید:try { final userCredential = await FirebaseAuth.instance.currentUser ?.linkWithCredential(credential); } on FirebaseAuthException catch (e) { switch (e.code) { case "provider-already-linked": print("The provider has already been linked to the user."); break; case "invalid-credential": print("The provider's credential is not valid."); break; case "credential-already-in-use": print("The account corresponding to the credential already exists, " "or is already linked to a Firebase User."); break; // See the API reference for the full list of error codes. default: print("Unknown error."); } ```
اگر تماس با linkWithCredential()
موفقیت آمیز باشد، حساب جدید کاربر می تواند به داده های Firebase حساب ناشناس دسترسی پیدا کند.
مراحل بعدی
پس از اینکه کاربر یک حساب جدید ایجاد کرد، این حساب به عنوان بخشی از پروژه Firebase شما ذخیره میشود و میتوان از آن برای شناسایی کاربر در همه برنامههای پروژهتان استفاده کرد، صرف نظر از اینکه کاربر از چه روش ورود به سیستم استفاده کرده است.
در برنامه های خود، می توانید اطلاعات اولیه نمایه کاربر را از شی User
دریافت کنید. به مدیریت کاربران مراجعه کنید.
در قوانین امنیتی Firebase Realtime Database و Cloud Storage، میتوانید شناسه کاربری منحصربهفرد کاربر واردشده به سیستم را از متغیر auth
دریافت کنید و از آن برای کنترل دادههایی که کاربر میتواند به آن دسترسی داشته باشد استفاده کنید.
میتوانید به کاربران اجازه دهید با استفاده از چندین ارائهدهنده احراز هویت، با پیوند دادن اعتبار ارائهدهنده احراز هویت به یک حساب کاربری موجود، به برنامه شما وارد شوند.
برای خروج از سیستم کاربر، signOut()
را فراخوانی کنید:
await FirebaseAuth.instance.signOut();