ربط تطبيقك بمنصّة Firebase
إذا لم تكن قد فعلت ذلك بالفعل، إضافة Firebase إلى مشروع Android
إضافة مصادقة Firebase إلى تطبيقك
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً
<project>/<app-module>/build.gradle.kts
أو<project>/<app-module>/build.gradle
)، أضف التبعية لمكتبة مصادقة Firebase لنظام Android. ننصح باستخدام قائمة مواد العرض لنظام Android في Firebase للتحكم في إصدارات المكتبة.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.2")) // 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") }
باستخدام قائمة قائمتها التشغيلية (Android BoM) من Firebase سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Android في Firebase.
(بديل) إضافة تبعيات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام قائمة عناصر Firebase، يجب تحديد كل إصدار من إصدارات مكتبة 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: انتقِل إلى صفحة "طريقة تسجيل الدخول" في مصادقة Firebase. لتفعيل تسجيل الدخول باستخدام عنوان البريد الإلكتروني أو كلمة المرور وأي موفرين آخرين للهوية التي تريدها لتطبيقك.
(اختياري) إنشاء نموذج أولي واختباره باستخدام "حزمة أدوات المحاكاة المحلية من Firebase"
قبل الحديث عن آلية تطبيقك في المصادقة على المستخدمين، إليك مجموعة من في الأدوات التي يمكنك استخدامها لإنشاء نموذج أولي واختبار وظيفة المصادقة: مجموعة أدوات المحاكاة المحلية في Firebase إذا كنت تريد الاختيار من بين أساليب المصادقة ومقدمي الخدمات، وتجربة نماذج بيانات مختلفة باستخدام بيانات عامة وخاصة باستخدام قواعد أمان Firebase والمصادقة، أو إنشاء نماذج أولية لتصميمات واجهة المستخدم لتسجيل الدخول، والقدرة على أن يكون العمل محليًا دون نشر خدمات مباشرة قد يكون فكرة رائعة.
يُعد محاكي المصادقة جزءًا من مجموعة أدوات المحاكاة المحلية، التي لتطبيقك من التفاعل مع محتوى قواعد البيانات التي تمت محاكاتها وإعداداتها، بالإضافة إلى موارد المشروع التي تمت محاكاتها (الدوال وقواعد البيانات الأخرى وقواعد الأمان).
يتضمن استخدام محاكي المصادقة بضع خطوات فقط:
- إضافة سطر من الرمز إلى إعدادات اختبار تطبيقك للاتصال بالمحاكي.
- من جذر دليل المشروع المحلي، مع تشغيل
firebase emulators:start
. - استخدام واجهة مستخدم مجموعة أدوات المحاكاة المحلية لإنشاء النماذج الأولية التفاعلية، أو واجهة برمجة تطبيقات REST لمحاكي المصادقة للاختبار غير التفاعلي
يتوفّر دليل تفصيلي في ربط تطبيقك بمحاكي المصادقة. لمزيد من المعلومات، اطّلِع على مقدمة عن مجموعة أدوات المحاكاة المحلية.
لننتقل الآن إلى كيفية مصادقة المستخدمين.
التحقّق من حالة المصادقة الحالية
تعريف مثيل
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); } } });
أضِف نموذجًا لتسجيل المستخدمين الجدد باستخدام عنوان البريد الإلكتروني وكلمة المرور الخاصَّين بهم والاسم الجديد. عند إرساله. يمكنك الاطّلاع على مثال في Quickstart sample (نموذج البدء السريع).
تسجيل دخول المستخدمين الحاليين
يمكنك إنشاء طريقة 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); } } });
أضِف نموذجًا لتسجيل دخول المستخدمين باستخدام عنوان بريدهم الإلكتروني وكلمة المرور الخاصَّين بهم والاتصال بهذا النموذج الجديد. عند إرساله. يمكنك الاطّلاع على مثال في Quickstart sample (نموذج البدء السريع).
الوصول إلى معلومات المستخدم
إذا سجّل أحد المستخدمين الدخول بنجاح، يمكنك الحصول على بيانات حسابه على
أي نقطة باستخدام طريقة 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(); }
الخطوات التالية
اطّلِع على الأدلّة حول إضافة خدمات أخرى متعلقة بالهوية والمصادقة: