میتوانید از Firebase Authentication برای ایجاد و استفاده از حسابهای ناشناس موقت برای احراز هویت با Firebase استفاده کنید. از این حسابهای ناشناس موقت میتوان برای اجازه دادن به کاربرانی که هنوز در برنامه شما ثبت نام نکردهاند استفاده کرد تا با دادههای محافظت شده توسط قوانین امنیتی کار کنند. اگر یک کاربر ناشناس تصمیم گرفت در برنامه شما ثبت نام کند، می توانید اعتبار ورود به سیستم او را به حساب ناشناس پیوند دهید تا بتواند در جلسات بعدی با داده های محافظت شده خود کار کند.
قبل از اینکه شروع کنی
- اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید .
- با استفاده از Firebase Android BoM ، وابستگی کتابخانه Android Firebase Authentication را در فایل Gradle ماژول (سطح برنامه) خود (معمولا
app/build.gradle
) اعلام کنید.Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.2.0') // Declare the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth' }
با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخههای سازگار کتابخانههای Firebase Android استفاده میکند.
(جایگزین) وابستگی های کتابخانه Firebase را بدون استفاده از BoM اعلام کنید
اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.
توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده می کنید، ما به شدت توصیه می کنیم از BoM برای مدیریت نسخه های کتابخانه استفاده کنید، که تضمین می کند همه نسخه ها سازگار هستند.
dependencies { // Declare the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth:21.0.6' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.2.0') // Declare the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth-ktx' }
با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخههای سازگار کتابخانههای Firebase Android استفاده میکند.
(جایگزین) وابستگی های کتابخانه Firebase را بدون استفاده از BoM اعلام کنید
اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.
توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده می کنید، ما به شدت توصیه می کنیم از BoM برای مدیریت نسخه های کتابخانه استفاده کنید، که تضمین می کند همه نسخه ها سازگار هستند.
dependencies { // Declare the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth-ktx:21.0.6' }
- اگر هنوز برنامه خود را به پروژه Firebase متصل نکرده اید، این کار را از کنسول Firebase انجام دهید.
- احراز هویت ناشناس را فعال کنید:
- در کنسول Firebase ، بخش Auth را باز کنید.
- در صفحه Sign-in Methods ، روش ورود به سیستم ناشناس را فعال کنید.
با Firebase به صورت ناشناس احراز هویت
هنگامی که یک کاربر خارج از سیستم از یک ویژگی برنامه استفاده میکند که نیاز به احراز هویت با Firebase دارد، با انجام مراحل زیر به صورت ناشناس وارد کاربر شوید:
- در روش
onCreate
فعالیت خود، نمونه مشترک شیFirebaseAuth
را دریافت کنید:Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
- هنگام راه اندازی فعالیت خود، بررسی کنید که آیا کاربر در حال حاضر وارد سیستم شده است یا خیر:
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); updateUI(currentUser); }
Kotlin+KTX
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser updateUI(currentUser) }
- در نهایت، با
signInAnonymously
تماس بگیرید تا به عنوان یک کاربر ناشناس وارد شوید:اگر ورود به سیستم با موفقیت انجام شد، میتوانید از روشJava
mAuth.signInAnonymously() .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInAnonymously:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInAnonymously:failure", task.getException()); Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
Kotlin+KTX
auth.signInAnonymously() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInAnonymously:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInAnonymously:failure", task.exception) Toast.makeText(baseContext, "Authentication failed.", Toast.LENGTH_SHORT).show() updateUI(null) } }
getCurrentUser
برای دریافت اطلاعات حساب کاربر استفاده کنید.
یک حساب کاربری ناشناس را به یک حساب دائمی تبدیل کنید
هنگامی که یک کاربر ناشناس در برنامه شما ثبت نام می کند، ممکن است بخواهید به او اجازه دهید کار خود را با حساب جدید خود ادامه دهد - برای مثال، ممکن است بخواهید مواردی را که کاربر قبل از ثبت نام به سبد خرید خود اضافه کرده است در جدید خود در دسترس قرار دهید. سبد خرید حساب برای این کار مراحل زیر را انجام دهید:
- هنگامی که کاربر ثبت نام می کند، جریان ورود به سیستم ارائه دهنده احراز هویت کاربر را تا فراخوانی یکی از روش های
FirebaseAuth.signInWith
، بدون احراز هویت، تکمیل کنید. به عنوان مثال، رمز Google ID کاربر، نشانه دسترسی فیس بوک یا آدرس ایمیل و رمز عبور را دریافت کنید. یک
AuthCredential
برای ارائه دهنده احراز هویت جدید دریافت کنید:ورود به سیستم گوگل
Java
AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);
Kotlin+KTX
val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
ورود به فیس بوک
Java
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
Kotlin+KTX
val credential = FacebookAuthProvider.getCredential(token.token)
ورود به سیستم با رمز عبور ایمیل
Java
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
Kotlin+KTX
val credential = EmailAuthProvider.getCredential(email, password)
شیء
AuthCredential
را به متدlinkWithCredential
کاربر ورود به سیستم ارسال کنید:Java
mAuth.getCurrentUser().linkWithCredential(credential) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Log.d(TAG, "linkWithCredential:success"); FirebaseUser user = task.getResult().getUser(); updateUI(user); } else { Log.w(TAG, "linkWithCredential:failure", task.getException()); Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
Kotlin+KTX
auth.currentUser!!.linkWithCredential(credential) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { Log.d(TAG, "linkWithCredential:success") val user = task.result?.user updateUI(user) } else { Log.w(TAG, "linkWithCredential:failure", task.exception) Toast.makeText(baseContext, "Authentication failed.", Toast.LENGTH_SHORT).show() updateUI(null) } }
اگر تماس با
linkWithCredential
موفقیت آمیز باشد، حساب جدید کاربر می تواند به داده های Firebase حساب ناشناس دسترسی پیدا کند.مراحل بعدی
اکنون که کاربران می توانند با Firebase احراز هویت کنند، می توانید با استفاده از قوانین Firebase دسترسی آنها به داده های پایگاه داده Firebase خود را کنترل کنید.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-07-04 UTC.
[] []