ابدأ باستخدام مصادقة Firebase على أنظمة Apple الأساسية

يمكنك استخدام مصادقة Firebase للسماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام طريقة واحدة أو أكثر لتسجيل الدخول، بما في ذلك تسجيل الدخول بعنوان البريد الإلكتروني وكلمة المرور وموفري الهوية المتحدين مثل تسجيل الدخول إلى Google وتسجيل الدخول إلى Facebook. يساعدك هذا البرنامج التعليمي على البدء باستخدام مصادقة Firebase من خلال توضيح كيفية إضافة عنوان البريد الإلكتروني وكلمة المرور لتسجيل الدخول إلى تطبيقك.

قم بتوصيل تطبيقك بـ Firebase

  1. قم بتثبيت Firebase SDK .
  2. في وحدة تحكم Firebase ، أضف تطبيقك إلى مشروع Firebase الخاص بك.

أضف مصادقة Firebase إلى تطبيقك

استخدم Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.

  1. في Xcode، مع فتح مشروع التطبيق الخاص بك، انتقل إلى File > Add Packages .
  2. عندما يُطلب منك ذلك، قم بإضافة مستودع Firebase Apple الأساسي لـ SDK:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. اختر مكتبة مصادقة Firebase.
  5. أضف علامة -ObjC إلى قسم إشارات الرابط الأخرى في إعدادات إنشاء هدفك.
  6. عند الانتهاء، سيبدأ Xcode تلقائيًا في حل وتنزيل تبعياتك في الخلفية.

(اختياري) النموذج الأولي والاختبار باستخدام Firebase Local Emulator Suite

قبل الحديث عن كيفية مصادقة تطبيقك للمستخدمين، دعنا نقدم مجموعة من الأدوات التي يمكنك استخدامها لإنشاء نموذج أولي واختبار وظيفة المصادقة: Firebase Local Emulator Suite. إذا كنت تختار بين تقنيات وموفري المصادقة، أو تجربة نماذج بيانات مختلفة مع البيانات العامة والخاصة باستخدام قواعد المصادقة وأمان Firebase، أو إنشاء نماذج أولية لتصميمات واجهة المستخدم لتسجيل الدخول، فإن القدرة على العمل محليًا دون نشر الخدمات المباشرة يمكن أن تكون فكرة رائعة .

يعد محاكي المصادقة جزءًا من Local Emulator Suite، الذي يمكّن تطبيقك من التفاعل مع محتوى قاعدة البيانات التي تمت محاكاتها وتكوينها، بالإضافة إلى موارد المشروع التي تمت محاكاتها بشكل اختياري (الوظائف وقواعد البيانات الأخرى وقواعد الأمان).

يتضمن استخدام محاكي المصادقة بضع خطوات فقط:

  1. إضافة سطر من التعليمات البرمجية إلى التكوين التجريبي لتطبيقك للاتصال بالمحاكي.
  2. من جذر دليل مشروعك المحلي، قم بتشغيل firebase emulators:start .
  3. استخدام 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;
  // ...
}

الخطوات التالية

تعرف على كيفية إضافة دعم لموفري الهوية الآخرين وحسابات الضيوف المجهولين: