ابدأ مع مصادقة Firebase على iOS

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

اربط تطبيقك بـ Firebase

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

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

  1. إضافة تبعية لمصادقة Firebase لمشروعك Podfile :

    pod 'Firebase/Auth'
    
  2. تشغيل pod install وفتح إنشاؤها .xcworkspace الملف.

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

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

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

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

  1. إضافة سطر من التعليمات البرمجية إلى التكوين التجريبي لتطبيقك للاتصال بالمحاكي.
  2. من جذر دليل المشروع الخاص المحلي، وتشغيل firebase emulators:start .
  3. استخدام Local Emulator Suite UI للنماذج الأولية التفاعلية ، أو محاكي المصادقة REST API للاختبار غير التفاعلي.

دليل مفصل متاح في ربط التطبيق إلى محاكي مصادقة . لمزيد من المعلومات، راجع المحاكي جناح المحلية مقدمة .

الآن دعنا نستمر في كيفية مصادقة المستخدمين.

قم بتهيئة Firebase SDK

في مفوض التطبيق ، قم أولاً باستيراد Firebase SDK:

سويفت

import Firebase

ج موضوعية

@import Firebase;

ثم في 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;
  // ...
}

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

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