برنامه خود را به Firebase وصل کنید
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید .
Firebase Authentication به برنامه خود اضافه کنید
در فایل Gradle ماژول (سطح برنامه) خود (معمولا
<project>/<app-module>/build.gradle.kts
یا<project>/<app-module>/build.gradle
)، وابستگی را برای Firebase Authentication اضافه کنید. کتابخانه برای اندروید توصیه میکنیم از Firebase Android BoM برای کنترل نسخهسازی کتابخانه استفاده کنید.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.4.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 استفاده میکند.
به دنبال یک ماژول کتابخانه خاص کاتلین هستید؟ از اکتبر 2023 ( Firebase BoM 32.5.0) ، توسعه دهندگان Kotlin و Java می توانند به ماژول کتابخانه اصلی وابسته باشند (برای جزئیات، به سؤالات متداول در مورد این ابتکار مراجعه کنید).(جایگزین) وابستگی های کتابخانه 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:23.0.0") }
برای استفاده از یک ارائه دهنده احراز هویت، باید آن را در کنسول Firebase فعال کنید. به صفحه Sign-in Method در بخش Firebase Authentication بروید تا ورود ایمیل/گذرواژه و سایر ارائه دهندگان هویتی را که می خواهید برای برنامه خود فعال کنید.
(اختیاری) نمونه اولیه و آزمایش با Firebase Local Emulator Suite
قبل از صحبت در مورد اینکه برنامه شما چگونه کاربران را احراز هویت میکند، بیایید مجموعهای از ابزارها را معرفی کنیم که میتوانید از آنها برای نمونهسازی اولیه و آزمایش عملکرد Authentication استفاده کنید: Firebase Local Emulator Suite . اگر از بین تکنیکها و ارائهدهندگان احراز هویت تصمیم میگیرید، آزمایش مدلهای مختلف داده با دادههای عمومی و خصوصی با استفاده از Authentication و Firebase Security Rules یا نمونهسازی طرحهای UI ورود به سیستم، امکان کار به صورت محلی بدون استقرار سرویسهای زنده میتواند ایده خوبی باشد. .
یک شبیهساز Authentication بخشی از Local Emulator Suite است که به برنامه شما امکان میدهد با محتوای پایگاه داده شبیهسازیشده و پیکربندی، و همچنین بهصورت اختیاری منابع پروژه شبیهسازی شده شما (توابع، سایر پایگاههای داده، و قوانین امنیتی) تعامل داشته باشد.
استفاده از شبیه ساز Authentication تنها شامل چند مرحله است:
- افزودن یک خط کد به پیکربندی آزمایشی برنامه برای اتصال به شبیه ساز.
- از ریشه دایرکتوری پروژه محلی خود،
firebase emulators:start
اجرا کنید. - استفاده از Local Emulator Suite UI برای نمونه سازی تعاملی، یا Authentication emulator REST API برای تست غیرتعاملی.
راهنمای دقیق در اتصال برنامه خود به شبیهساز Authentication موجود است. برای اطلاعات بیشتر، به معرفی Local Emulator Suite مراجعه کنید.
حالا بیایید به نحوه احراز هویت کاربران ادامه دهیم.
وضعیت اعتبار فعلی را بررسی کنید
یک نمونه از
FirebaseAuth
را اعلام کنید.Kotlin+KTX
private lateinit var auth: FirebaseAuth
Java
private FirebaseAuth mAuth;
در متد
onCreate()
نمونهFirebaseAuth
مقداردهی اولیه کنید.Kotlin+KTX
// Initialize Firebase Auth auth = Firebase.auth
Java
// Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
هنگام راه اندازی فعالیت خود، بررسی کنید که آیا کاربر در حال حاضر وارد سیستم شده است یا خیر.
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() } }
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(); } }
ثبت نام کاربران جدید
یک متد createAccount
جدید ایجاد کنید که آدرس ایمیل و رمز عبور را دریافت می کند، آنها را تأیید می کند و سپس یک کاربر جدید با روش createUserWithEmailAndPassword
ایجاد می کند.
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) } }
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); } } });
یک فرم برای ثبت نام کاربران جدید با ایمیل و رمز عبور اضافه کنید و پس از ارسال با این روش جدید تماس بگیرید. می توانید یک نمونه را در نمونه شروع سریع ما مشاهده کنید.
ورود کاربران موجود
یک روش signIn
جدید ایجاد کنید که آدرس ایمیل و رمز عبور را دریافت می کند، آنها را تأیید می کند و سپس کاربر را با روش signInWithEmailAndPassword
وارد می کند.
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) } }
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); } } });
یک فرم برای ورود کاربران با ایمیل و رمز عبور خود اضافه کنید و پس از ارسال با این روش جدید تماس بگیرید. می توانید یک نمونه را در نمونه شروع سریع ما مشاهده کنید.
دسترسی به اطلاعات کاربر
اگر کاربر با موفقیت وارد سیستم شده است، می توانید اطلاعات حساب کاربری او را در هر نقطه با روش getCurrentUser
دریافت کنید.
Kotlin+KTX
val user = Firebase.auth.currentUser user?.let { // Name, email address, and profile photo Url val name = it.displayName val email = it.email val photoUrl = it.photoUrl // Check if user's email is verified val emailVerified = it.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. val uid = it.uid }
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(); }
مراحل بعدی
راهنماهای افزودن سایر خدمات هویت و احراز هویت را کاوش کنید: