欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用,并在之后根据需要轻松地扩大应用规模。立即报名

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

برنامه خود را به Firebase وصل کنید

اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Android خود اضافه کنید .

احراز هویت Firebase را به برنامه خود اضافه کنید

در فایل Gradle ماژول (سطح برنامه) خود (معمولا <project>/<app-module>/build.gradle )، وابستگی را برای کتابخانه Firebase Authentication Android اضافه کنید. توصیه می‌کنیم از Firebase Android BoM برای کنترل نسخه‌سازی کتابخانه استفاده کنید.

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:30.5.0')

    // Add 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 {
    // Add 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.8'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:30.5.0')

    // Add 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 {
    // Add 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.8'
}

برای استفاده از یک ارائه دهنده احراز هویت، باید آن را در کنسول Firebase فعال کنید. به صفحه روش ورود به سیستم در بخش احراز هویت Firebase بروید تا ورود به سیستم ایمیل/گذرواژه و هر ارائه‌دهنده هویت دیگری را که می‌خواهید برای برنامه خود فعال کنید.

(اختیاری) نمونه اولیه و آزمایش با Firebase Local Emulator Suite

قبل از صحبت در مورد اینکه برنامه شما چگونه کاربران را احراز هویت می‌کند، بیایید مجموعه‌ای از ابزارها را معرفی کنیم که می‌توانید از آنها برای نمونه‌سازی اولیه و آزمایش عملکرد احراز هویت استفاده کنید: Firebase Local Emulator Suite. اگر از بین تکنیک‌ها و ارائه‌دهندگان احراز هویت تصمیم می‌گیرید، آزمایش مدل‌های مختلف داده با داده‌های عمومی و خصوصی با استفاده از احراز هویت و قوانین امنیتی Firebase یا نمونه‌سازی طرح‌های UI ورود به سیستم، امکان کار به صورت محلی بدون استقرار سرویس‌های زنده می‌تواند ایده خوبی باشد. .

شبیه‌ساز احراز هویت بخشی از Local Emulator Suite است که به برنامه شما امکان می‌دهد با محتوای پایگاه داده شبیه‌سازی شده و پیکربندی، و همچنین به صورت اختیاری منابع پروژه شبیه‌سازی شده شما (توابع، سایر پایگاه‌های داده و قوانین امنیتی) تعامل داشته باشد.

استفاده از شبیه ساز Authentication تنها شامل چند مرحله است:

  1. افزودن یک خط کد به پیکربندی آزمایشی برنامه برای اتصال به شبیه ساز.
  2. از ریشه دایرکتوری پروژه محلی خود، firebase emulators:start اجرا کنید.
  3. استفاده از Local Emulator Suite UI برای نمونه سازی تعاملی، یا Authentication emulator REST API برای تست غیرتعاملی.

راهنمای دقیق در اتصال برنامه خود به شبیه‌ساز احراز هویت موجود است. برای اطلاعات بیشتر، به معرفی Local Emulator Suite مراجعه کنید.

حالا بیایید به نحوه احراز هویت کاربران ادامه دهیم.

وضعیت اعتبار فعلی را بررسی کنید

  1. یک نمونه از FirebaseAuth را اعلام کنید.

    Java

    private FirebaseAuth mAuth;

    Kotlin+KTX

    private lateinit var auth: FirebaseAuth
  2. در onCreate() نمونه FirebaseAuth را مقداردهی اولیه کنید.

    Java

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

    Kotlin+KTX

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

    Java

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        if(currentUser != null){
            reload();
        }
    }

    Kotlin+KTX

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        if(currentUser != null){
            reload();
        }
    }

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

یک متد createAccount جدید ایجاد کنید که آدرس ایمیل و رمز عبور را دریافت می کند، آنها را تایید می کند و سپس یک کاربر جدید با متد createUserWithEmailAndPassword ایجاد می کند.

Java

mAuth.createUserWithEmailAndPassword(email, password)
        .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, "createUserWithEmail:success");
                    FirebaseUser user = mAuth.getCurrentUser();
                    updateUI(user);
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "createUserWithEmail:failure", task.getException());
                    Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                            Toast.LENGTH_SHORT).show();
                    updateUI(null);
                }
            }
        });

Kotlin+KTX

auth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "createUserWithEmail:success")
                val user = auth.currentUser
                updateUI(user)
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "createUserWithEmail:failure", task.exception)
                Toast.makeText(baseContext, "Authentication failed.",
                        Toast.LENGTH_SHORT).show()
                updateUI(null)
            }
        }

یک فرم برای ثبت نام کاربران جدید با ایمیل و رمز عبور اضافه کنید و پس از ارسال با این روش جدید تماس بگیرید. می توانید یک نمونه را در نمونه شروع سریع ما مشاهده کنید.

ورود کاربران موجود

یک روش ورود جدید ایجاد کنید که آدرس ایمیل و رمز عبور را دریافت می کند، آنها را تأیید می کند و سپس کاربر را با روش signIn signInWithEmailAndPassword می کند.

Java

mAuth.signInWithEmailAndPassword(email, password)
        .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, "signInWithEmail:success");
                    FirebaseUser user = mAuth.getCurrentUser();
                    updateUI(user);
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "signInWithEmail:failure", task.getException());
                    Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                            Toast.LENGTH_SHORT).show();
                    updateUI(null);
                }
            }
        });

Kotlin+KTX

auth.signInWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "signInWithEmail:success")
                val user = auth.currentUser
                updateUI(user)
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInWithEmail:failure", task.exception)
                Toast.makeText(baseContext, "Authentication failed.",
                        Toast.LENGTH_SHORT).show()
                updateUI(null)
            }
        }

یک فرم برای ورود کاربران با ایمیل و رمز عبور خود اضافه کنید و پس از ارسال با این روش جدید تماس بگیرید. می توانید یک نمونه را در نمونه شروع سریع ما مشاهده کنید.

دسترسی به اطلاعات کاربر

اگر کاربر با موفقیت وارد سیستم شده است، می توانید اطلاعات حساب کاربری او را در هر نقطه با روش getCurrentUser کنید.

Java

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
    // Name, email address, and profile photo Url
    String name = user.getDisplayName();
    String email = user.getEmail();
    Uri photoUrl = user.getPhotoUrl();

    // Check if user's email is verified
    boolean emailVerified = user.isEmailVerified();

    // 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
    // FirebaseUser.getIdToken() instead.
    String uid = user.getUid();
}

Kotlin+KTX

val user = Firebase.auth.currentUser
user?.let {
    // Name, email address, and profile photo Url
    val name = user.displayName
    val email = user.email
    val photoUrl = user.photoUrl

    // Check if user's email is verified
    val emailVerified = user.isEmailVerified

    // 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
    // FirebaseUser.getToken() instead.
    val uid = user.uid
}

مراحل بعدی

راهنماهای اضافه کردن سایر خدمات هویت و احراز هویت را کاوش کنید: