برنامه خود را به Firebase وصل کنید
اگر هنوز Firebase را به پروژه اندروید خود اضافه نکردهاید، آن را اضافه کنید.
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:34.9.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 استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه 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:24.0.1") }
برای استفاده از یک ارائهدهنده احراز هویت، باید آن را در کنسول Firebase فعال کنید. برای فعال کردن ورود با ایمیل/رمز عبور و هر ارائهدهنده هویت دیگری که برای برنامه خود میخواهید، به صفحه «روش ورود» در بخش Firebase Authentication بروید.
(اختیاری) نمونه اولیه و تست با Firebase Local Emulator Suite
قبل از صحبت در مورد نحوه احراز هویت کاربران توسط برنامه شما، بیایید مجموعهای از ابزارهایی را که میتوانید برای نمونهسازی اولیه و آزمایش عملکرد Authentication استفاده کنید، معرفی کنیم: Firebase Local Emulator Suite . اگر در حال تصمیمگیری بین تکنیکها و ارائهدهندگان احراز هویت هستید، مدلهای داده مختلف را با دادههای عمومی و خصوصی با استفاده از Authentication و Firebase Security Rules امتحان میکنید، یا طرحهای رابط کاربری ورود به سیستم را نمونهسازی میکنید، توانایی کار به صورت محلی بدون استقرار سرویسهای زنده میتواند ایده خوبی باشد.
یک شبیهساز Authentication بخشی از Local Emulator Suite است که به برنامه شما امکان میدهد با محتوا و پیکربندی پایگاه داده شبیهسازی شده، و همچنین به صورت اختیاری با منابع پروژه شبیهسازی شده شما (توابع، سایر پایگاههای داده و قوانین امنیتی) تعامل داشته باشد.
استفاده از شبیهساز Authentication فقط شامل چند مرحله است:
- اضافه کردن یک خط کد به فایل پیکربندی آزمایشی برنامه برای اتصال به شبیهساز.
- از ریشه دایرکتوری پروژه محلی خود،
firebase emulators:start. - استفاده از رابط کاربری Local Emulator Suite برای نمونهسازی تعاملی، یا REST API شبیهساز Authentication برای آزمایش غیرتعاملی.
راهنمای مفصلی در «برنامه خود را به شبیهساز Authentication متصل کنید» موجود است. برای اطلاعات بیشتر، به معرفی Local Emulator Suite مراجعه کنید.
حالا بیایید به نحوه احراز هویت کاربران ادامه دهیم.
وضعیت فعلی احراز هویت را بررسی کنید
یک نمونه از
FirebaseAuthتعریف کنید.Kotlin
private lateinit var auth: FirebaseAuth
Java
private FirebaseAuth mAuth;
در متد
onCreate()، نمونهFirebaseAuthمقداردهی اولیه کنید.Kotlin
// Initialize Firebase Auth auth = Firebase.auth
Java
// Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
هنگام مقداردهی اولیه Activity، بررسی کنید که آیا کاربر در حال حاضر وارد سیستم شده است یا خیر.
Kotlin
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
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
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
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(); }
مراحل بعدی
راهنماهای مربوط به افزودن سایر سرویسهای هویت و احراز هویت را بررسی کنید: