يمكنك استخدام مصادقة Firebase للسماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام طريقة واحدة أو أكثر لتسجيل الدخول، بما في ذلك تسجيل الدخول بعنوان البريد الإلكتروني وكلمة المرور وموفري الهوية المتحدين مثل تسجيل الدخول إلى Google وتسجيل الدخول إلى Facebook. يساعدك هذا البرنامج التعليمي على البدء باستخدام مصادقة Firebase من خلال توضيح كيفية إضافة عنوان البريد الإلكتروني وكلمة المرور لتسجيل الدخول إلى تطبيقك.
قم بتوصيل تطبيقك بـ Firebase
- قم بتثبيت Firebase SDK .
- في وحدة تحكم Firebase ، أضف تطبيقك إلى مشروع Firebase الخاص بك.
أضف مصادقة Firebase إلى تطبيقك
استخدم Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.
- في Xcode، مع فتح مشروع التطبيق الخاص بك، انتقل إلى File > Add Packages .
- عندما يُطلب منك ذلك، قم بإضافة مستودع Firebase Apple الأساسي لـ SDK:
- اختر مكتبة مصادقة Firebase.
- أضف علامة
-ObjC
إلى قسم إشارات الرابط الأخرى في إعدادات إنشاء هدفك. - عند الانتهاء، سيبدأ Xcode تلقائيًا في حل وتنزيل تبعياتك في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
(اختياري) النموذج الأولي والاختبار باستخدام Firebase Local Emulator Suite
قبل الحديث عن كيفية مصادقة تطبيقك للمستخدمين، دعنا نقدم مجموعة من الأدوات التي يمكنك استخدامها لإنشاء نموذج أولي واختبار وظيفة المصادقة: Firebase Local Emulator Suite. إذا كنت تختار بين تقنيات وموفري المصادقة، أو تجربة نماذج بيانات مختلفة مع البيانات العامة والخاصة باستخدام قواعد المصادقة وأمان Firebase، أو إنشاء نماذج أولية لتصميمات واجهة المستخدم لتسجيل الدخول، فقد تكون القدرة على العمل محليًا دون نشر الخدمات المباشرة فكرة رائعة .
يعد محاكي المصادقة جزءًا من Local Emulator Suite، الذي يمكّن تطبيقك من التفاعل مع محتوى قاعدة البيانات التي تمت محاكاتها وتكوينها، بالإضافة إلى موارد المشروع التي تمت محاكاتها بشكل اختياري (الوظائف وقواعد البيانات الأخرى وقواعد الأمان).
يتضمن استخدام محاكي المصادقة بضع خطوات فقط:
- إضافة سطر من التعليمات البرمجية إلى التكوين التجريبي لتطبيقك للاتصال بالمحاكي.
- من جذر دليل مشروعك المحلي، قم بتشغيل
firebase emulators:start
. - استخدام Local Emulator Suite UI للنماذج الأولية التفاعلية، أو REST API لمحاكي المصادقة للاختبارات غير التفاعلية.
يتوفر دليل تفصيلي على توصيل تطبيقك بمحاكي المصادقة . لمزيد من المعلومات، راجع مقدمة Local Emulator Suite .
لنتابع الآن كيفية مصادقة المستخدمين.
تهيئة Firebase SDK
في مندوب تطبيقك، قم أولاً باستيراد Firebase SDK:
سويفت
import FirebaseCore
ج موضوعية
@import FirebaseCore;
بعد ذلك، في application:didFinishLaunchingWithOptions:
قم بتهيئة كائن FirebaseApp
:
سويفت
// Use Firebase library to configure APIs
FirebaseApp.configure()
ج موضوعية
// Use Firebase library to configure APIs
[FIRApp configure];
استمع لحالة المصادقة
بالنسبة لكل عرض من عروض تطبيقك التي تحتاج إلى معلومات حول المستخدم الذي قام بتسجيل الدخول، قم بإرفاق مستمع بكائن FIRAuth
. يتم استدعاء هذا المستمع عندما تتغير حالة تسجيل دخول المستخدم.
قم بإرفاق المستمع في طريقة viewWillAppear
الخاصة بوحدة التحكم في العرض:
سويفت
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
ج موضوعية
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
وافصل المستمع في طريقة viewWillDisappear
الخاصة بوحدة التحكم في العرض:
سويفت
Auth.auth().removeStateDidChangeListener(handle!)
ج موضوعية
[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];
تسجيل مستخدمين جدد
قم بإنشاء نموذج يسمح للمستخدمين الجدد بالتسجيل في تطبيقك باستخدام عنوان بريدهم الإلكتروني وكلمة المرور. عندما يكمل المستخدم النموذج، تحقق من صحة عنوان البريد الإلكتروني وكلمة المرور اللذين قدمهما المستخدم، ثم قم بتمريرهما إلى الأسلوب createUser
:
سويفت
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
// ...
}
ج موضوعية
[[FIRAuth auth] createUserWithEmail:email
password:password
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
تسجيل الدخول للمستخدمين الحاليين
قم بإنشاء نموذج يسمح للمستخدمين الحاليين بتسجيل الدخول باستخدام عنوان البريد الإلكتروني وكلمة المرور الخاصة بهم. عندما يكمل المستخدم النموذج، اتصل بأسلوب signIn
:
سويفت
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
guard let strongSelf = self else { return }
// ...
}
ج موضوعية
[[FIRAuth auth] signInWithEmail:self->_emailField.text
password:self->_passwordField.text
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
الحصول على معلومات المستخدم
بعد قيام المستخدم بتسجيل الدخول بنجاح، يمكنك الحصول على معلومات حول المستخدم. على سبيل المثال، في مستمع حالة المصادقة الخاصة بك:
سويفت
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 += " "
}
// ...
}
ج موضوعية
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;
// ...
}
الخطوات التالية
تعرف على كيفية إضافة دعم لموفري الهوية الآخرين وحسابات الضيوف المجهولين:
- تسجيل الدخول إلى جوجل
- تسجيل الدخول الى الفيسبوك
- تسجيل الدخول تويتر
- تسجيل الدخول إلى جيثب
- تسجيل دخول مجهول