با Firebase به طور ناشناس در Android احراز هویت شوید

می توانید از احراز هویت Firebase برای ایجاد و استفاده از حساب های ناشناس موقت برای احراز هویت با Firebase استفاده کنید. از این حساب های ناشناس موقت می توان استفاده کرد تا به کاربرانی که هنوز در برنامه شما ثبت نام نکرده اند اجازه دهند با داده های محافظت شده توسط قوانین امنیتی کار کنند. اگر یک کاربر ناشناس تصمیم می گیرد به ثبت نام برای برنامه خود را، شما می توانید ورود به سیستم خود اعتبار به حساب ناشناس پیوند به طوری که آنها می توانند به کار با داده های حفاظت شده خود در جلسات آینده ادامه خواهد داد.

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

  1. اگر شما در حال حاضر، اضافه فایربیس به پروژه آندروید خود را .
  2. با استفاده از فایربیس آندروید BOM ، اعلام وابستگی برای کتابخانه فایربیس احراز هویت آندروید در ماژول خود را (در سطح برنامه) فایل Gradle (معمولا app/build.gradle ).

    جاوا

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.1')
    
        // 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'
    }
    

    با استفاده از فایربیس آندروید BOM ، برنامه شما همیشه نسخه های سازگار با کتابخانه فایربیس آندروید استفاده خواهد کرد.

    (جایگزین) اعلام فایربیس وابستگی کتابخانه بدون استفاده از BOM

    در صورت عدم استفاده از Firebase BoM ، باید هر نسخه کتابخانه 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.1'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.1')
    
        // 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'
    }
    

    با استفاده از فایربیس آندروید BOM ، برنامه شما همیشه نسخه های سازگار با کتابخانه فایربیس آندروید استفاده خواهد کرد.

    (جایگزین) اعلام فایربیس وابستگی کتابخانه بدون استفاده از BOM

    در صورت عدم استفاده از Firebase BoM ، باید هر نسخه کتابخانه 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.1'
    }
    
  3. اگر هنوز برنامه خود را متصل به پروژه فایربیس شما نیست، انجام این کار از کنسول فایربیس .
  4. نویسنده ناشناس را فعال کنید:
    1. در فایربیس کنسول ، باز کردن بخش تایید.
    2. بر روی ثبت نام در روش صفحه، فعال کردن ناشناس ورود به سیستم روش.

با Firebase به صورت ناشناس احراز هویت کنید

هنگامی که کاربر خارج از سیستم از ویژگی برنامه ای استفاده می کند که نیاز به احراز هویت با Firebase دارد ، با انجام مراحل زیر ، کاربر را به صورت ناشناس وارد کنید:

  1. در فعالیت های خود را در onCreate روش، دریافت عنوان مثال مشترک FirebaseAuth شی:

    جاوا

    private FirebaseAuth mAuth;
    // ...
    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    Kotlin+KTX

    private lateinit var auth: FirebaseAuth
    // ...
    // Initialize Firebase Auth
    auth = Firebase.auth
  2. هنگام فعال سازی فعالیت خود ، بررسی کنید که آیا کاربر در حال حاضر وارد سیستم شده است:

    جاوا

    @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)
    }
  3. در نهایت، پاسخ signInAnonymously به سیستم به عنوان یک کاربر ناشناس:

    جاوا

    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 روش برای به دست آوردن اطلاعات حساب کاربر.

تبدیل یک حساب ناشناس به یک حساب دائمی

هنگامی که یک کاربر ناشناس در برنامه شما ثبت نام می کند ، ممکن است بخواهید به او اجازه دهید کار خود را با حساب جدید خود ادامه دهد - برای مثال ، ممکن است بخواهید مواردی را که کاربر قبل از ثبت نام در سبد خرید خود اضافه کرده است ، در برنامه جدید خود در دسترس قرار دهید. سبد خرید حساب برای انجام این کار ، مراحل زیر را تکمیل کنید:

  1. وقتی که کاربر تا تکمیل جریان ورود به سیستم برای ارائه دهنده احراز هویت کاربر به، اما نه از جمله، خواستار یکی از FirebaseAuth.signInWith روش. به عنوان مثال ، گوگل شناسه کاربر ، رمز دسترسی فیس بوک یا آدرس ایمیل و رمز عبور را دریافت کنید.
  2. دریافت یک AuthCredential برای ارائه دهنده احراز هویت جدید:

    ورود به سیستم Google

    جاوا

    AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);

    Kotlin+KTX

    val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
    ورود فیس بوک

    جاوا

    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());

    Kotlin+KTX

    val credential = FacebookAuthProvider.getCredential(token.token)
    ورود ایمیل-رمز ورود

    جاوا

    AuthCredential credential = EmailAuthProvider.getCredential(email, password);

    Kotlin+KTX

    val credential = EmailAuthProvider.getCredential(email, password)
  3. رمز عبور AuthCredential شیء را به ثبت نام در کاربر linkWithCredential روش:

    جاوا

    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 خود با استفاده از کنترل قوانین فایربیس .