يمكنك استخدام مصادقة Firebase للسماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام طريقة واحدة أو أكثر من طرق تسجيل الدخول، بما في ذلك عنوان البريد الإلكتروني وتسجيل الدخول باستخدام كلمة المرور، وموفِّري الهوية الموحّدة مثل "تسجيل الدخول بحساب Google" وتسجيل الدخول إلى Facebook. يساعدك هذا البرنامج التعليمي في بدء استخدام مصادقة Firebase من خلال توضيح كيفية إضافة عنوان البريد الإلكتروني وتسجيل الدخول باستخدام كلمة المرور إلى تطبيقك.
ربط تطبيقك بمنصّة Firebase
- ثبِّت حزمة تطوير البرامج (SDK) لمنصّة Firebase.
- أضف تطبيقك إلى مشروع Firebase من خلال وحدة تحكم Firebase.
إضافة مصادقة Firebase إلى تطبيقك
يمكنك استخدام "مدير حزم Swift" لتثبيت اعتماديات Firebase وإدارتها.
- في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى File > Add Packages (ملف > إضافة حِزم).
- أضِف مستودع حزمة تطوير البرامج (SDK) لمنصّات Firebase Apple عندما يُطلب منك ذلك:
- اختر مكتبة مصادقة Firebase.
- أضِف العلامة
-ObjC
إلى القسم علامات الروابط الأخرى في إعدادات إصدار هدفك. - عند الانتهاء، ستبدأ خدمة Xcode تلقائيًا في حلّ المشاكل المتعلّقة بالعناصر التي تعتمد عليها وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
(اختياري) إنشاء نموذج أولي واختباره باستخدام "حزمة أدوات المحاكاة المحلية من Firebase"
قبل الحديث عن كيفية مصادقة تطبيقك للمستخدمين، يُرجى تقديم مجموعة من الأدوات التي يمكنك استخدامها لإنشاء نموذج أوّلي واختبار وظائف المصادقة: مجموعة أدوات المحاكاة المحلية من Firebase. إذا كنت تختار من بين تقنيات المصادقة ومقدّمي الخدمات، يمكنك تجربة نماذج بيانات مختلفة مع بيانات عامة وخاصة باستخدام قواعد أمان Firebase والمصادقة، أو إنشاء نماذج أولية لتصميمات واجهة المستخدم لتسجيل الدخول، إذ إنّ القدرة على العمل محليًا بدون نشر الخدمات المباشرة قد تكون فكرة رائعة.
محاكي المصادقة هو جزء من مجموعة أدوات المحاكاة المحلية التي تمكّن تطبيقك من التفاعل مع محتوى قواعد البيانات التي تمت محاكاتها وتهيئتها، بالإضافة إلى موارد المشروع التي تمّت محاكاتها (الوظائف وقواعد البيانات الأخرى وقواعد الأمان).
يتضمن استخدام محاكي المصادقة بضع خطوات فقط:
- إضافة سطر من الرمز إلى إعدادات اختبار تطبيقك للاتصال بالمحاكي.
- من جذر دليل المشروع المحلي، مع تشغيل
firebase emulators:start
. - استخدام واجهة مستخدم مجموعة أدوات المحاكاة المحلية لإنشاء النماذج الأولية التفاعلية أو واجهة برمجة التطبيقات لمحاكي المصادقة REST للاختبار غير التفاعلي
يتوفّر دليل تفصيلي في ربط تطبيقك بمحاكي المصادقة. لمزيد من المعلومات، اطّلِع على مقدمة عن مجموعة أدوات المحاكاة المحلية.
لننتقل الآن إلى كيفية مصادقة المستخدمين.
إعداد حزمة تطوير البرامج (SDK) لمنصّة Firebase
في التطبيق المفوَّض، عليك أولاً استيراد حزمة تطوير البرامج (SDK) لمنصّة Firebase وفقًا لما يلي:
Swift
import FirebaseCore
Objective-C
@import FirebaseCore;
بعد ذلك، يمكنك إعداد الكائن FirebaseApp
بطريقة application:didFinishLaunchingWithOptions:
باتّباع الخطوات التالية:
Swift
// Use Firebase library to configure APIs
FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs
[FIRApp configure];
الاستماع إلى حالة المصادقة
لكل طريقة عرض في تطبيقك تحتاج إلى معلومات حول المستخدم الذي سجّل الدخول،
يمكنك إرفاق أداة استماع إلى كائن FIRAuth
. يتم استدعاء هذا المستمع كلما تغيرت
حالة تسجيل دخول المستخدم.
إرفاق المستمع في طريقة viewWillAppear
في وحدة التحكم بالعرض:
Swift
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
Objective-C
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
ويمكنك فصل المستمع من خلال طريقة viewWillDisappear
لوحدة التحكم في العرض:
Swift
Auth.auth().removeStateDidChangeListener(handle!)
Objective-C
[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];
تسجيل اشتراك مستخدمين جدد
يمكنك إنشاء نموذج يسمح للمستخدمين الجدد بالتسجيل في تطبيقك باستخدام عنوان بريدهم الإلكتروني وكلمة مرور. عندما يُكمل المستخدم النموذج، تحقَّق من صحة عنوان البريد الإلكتروني
وكلمة المرور اللذين قدّمهما المستخدم، ثم مرِّرهما إلى الطريقة createUser
:
Swift
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
// ...
}
Objective-C
[[FIRAuth auth] createUserWithEmail:email
password:password
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
تسجيل دخول المستخدمين الحاليين
إنشاء نموذج يتيح للمستخدمين الحاليين تسجيل الدخول باستخدام عنوان البريد الإلكتروني
وكلمة المرور. عندما يُكمل المستخدم النموذج، يجب استدعاء طريقة signIn
:
Swift
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
guard let strongSelf = self else { return }
// ...
}
Objective-C
[[FIRAuth auth] signInWithEmail:self->_emailField.text
password:self->_passwordField.text
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
الحصول على معلومات المستخدم
بعد أن يسجِّل المستخدم دخوله بنجاح، يمكنك الحصول على معلومات حول المستخدم. على سبيل المثال، في حالة المصادقة:
Swift
if let user = user {
// 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 getTokenWithCompletion:completion: instead.
let uid = user.uid
let email = user.email
let photoURL = user.photoURL
var multiFactorString = "MultiFactor: "
for info in user.multiFactor.enrolledFactors {
multiFactorString += info.displayName ?? "[DispayName]"
multiFactorString += " "
}
// ...
}
Objective-C
if (user) {
// 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 getTokenWithCompletion:completion: instead.
NSString *email = user.email;
NSString *uid = user.uid;
NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
[multiFactorString appendString:info.displayName];
[multiFactorString appendString:@" "];
}
NSURL *photoURL = user.photoURL;
// ...
}
الخطوات اللاحقة
تعرَّف على كيفية إتاحة موفِّري الهوية الآخرين وحسابات الضيوف المجهولة الهوية:
- تسجيل الدخول باستخدام حساب Google
- تسجيل الدخول إلى Facebook
- تسجيل الدخول إلى Twitter
- تسجيل الدخول إلى GitHub
- تسجيل الدخول مع إخفاء الهوية