برنامه را به Firebase متصل کنید
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید.
افزودن Firebase Authentication به برنامه
در فایل Gradle واحد (سطح برنامه) (معمولاً
<project>/<app-module>/build.gradle.ktsیا<project>/<app-module>/build.gradle)، وابستگی کتابخانه Firebase Authentication را برای Android اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.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:25.0.0") }
برای استفاده از ارائهدهنده اصالتسنجی، باید آن را در 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 واسط کاربر برای نمونهسازی تعاملی، یا Authentication میانای برنامهسازی کاربردی شبیهساز REST برای آزمایش غیرتعاملی.
راهنمای مفصلی در اتصال برنامه به شبیهساز 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();
هنگام مقداردهی اولیه «فعالیت»، بررسی کنید که آیا کاربر درحالحاضر به سیستم وارد شده است یا نه.
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(); }
مراحل بعدی
راهنماهای افزودن خدمات اصالتسنجی و هویت دیگر را کاوش کنید: