كيفية إنشاء وظيفة تسجيل الدخول والتسجيل لتطبيق iOS الخاص بك باستخدام Firebase في غضون 15 دقيقة

أي تطبيق تم تصميمه هو في النهاية للمستخدمين ، وأحد الجوانب المهمة لتطوير تطبيق iOS هو منح المستخدم أفضل تجربة شخصية ممكنة. لهذا الغرض ، نحتاج إلى السماح للمستخدمين بالتسجيل والدخول في تطبيق iOS الخاص بنا. في هذه المقالة ، سنقوم ببناء تلك الوظيفة باستخدام Firebase في تطبيق iOS الخاص بنا.

لقطة شاشة للتطبيق

ما هو Firebase؟

Firebase هو محطة واحدة لجميع متطلبات الخدمة لتطبيق الجوال. كلما تعلمت Firebase ، كان تطبيقك أفضل.

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

يتم استخدام مصادقة Firebase للتحقق من هوية المستخدم وتزويده بتجربة مخصصة. يمكن أن يحدث المصادقة مع Firebase باستخدام كلمة مرور البريد الإلكتروني أو رقم الهاتف أو باستخدام الهوية التي يوفرها الطرف الثالث مثل Google و Facebook و Twitter و Github.

الإعداد الأولي في Xcode:

إنشاء مشروع Xcode باستخدام قالب التطبيق عرض واحد. دعنا ننشئ وحدات تحكم 4 عرض:

  • StartViewController - الصفحة الأولى من التطبيق.
  • LoginViewController - شاشة تسجيل الدخول.
  • SignUpViewController - شاشة التسجيل.
  • HomeViewController - الصفحة التي يجب اتباعها بعد تسجيل دخول المستخدم.

تأكد من ربط وحدات تحكم العرض ذات الصلة في Interface Builder (IB) من لوحة العمل.

بمجرد إنشاء وحدات تحكم العرض 4 ، قم بما يلي:

  • تضمين StartViewController مع NavigationController.
  • أضف أزرار التسجيل / الدخول وحقول النص بأسلوبك الخاص ، على غرار تلك الموضحة في الصورة أدناه. قم بتوصيل حقول النص والأزرار في LoginViewController و SignUpViewController بالملفات السريعة ذات الصلة.
  • إنشاء 5 شرائح التالية - StartViewController إلى LoginViewController ، StartViewController إلى SignupViewController ومن StartViewController ، LoginViewController ، SignUpViewController إلى HomeViewController. يمكنك الرجوع إلى الأسهم في لوحة العمل أدناه.
إعداد منشئ واجهة

إعداد Firebase:

  • افتح وحدة Firebase.
  • قم بإنشاء مشروع "AwesomeProject" وإضافة تطبيق iOS الخاص بك ، انقر فوق "إضافة Firebase إلى تطبيق iOS". ثم اتبع التعليمات الواردة.
يجب أن يكون مثل هذا
  • في الخطوة الأخيرة ، سيُطلب منك إضافة رمز إلى مندوب التطبيقات في مشروع Xcode. انقر فوق "إنهاء". يجب أن يبدو AppDelegate الخاص بك:
استيراد UIKit
استيراد Firebase
UIApplicationMain
class AppDelegate: UIResponder، UIApplicationDelegate {
فار النافذة: UIWindow؟
تطبيق func (_ application: UIApplication ، didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]؟) -> Bool {
         FirebaseApp.configure ()
        عودة صحيح
    }
...

إعداد مصادقة Firebase:

Podfile
  • افتح ملف Podfile في مجلد المشروع الخاص بك وأضف جراب "Firebase / Auth". يجب أن تضيف pod 'Firebase / Core' في الخطوة السابقة.
  • في المحطة ، قم بتشغيل تثبيت pod $ في دليل المشروع.
  • افتح SignUpViewController. قم بتوصيل الحقول النصية من IB تحت اسم البريد الإلكتروني وكلمة المرور وكلمة المرور ، تأكد إذا لم تكن قد قمت بذلك بالفعل.
  • إضافة وظيفة إجراء signUpAction لأداء الاشتراك. أضف الكود أدناه إلى signUpAction ()
IBOutlet ضعيف البريد الإلكتروني: UITextField!
IBOutlet ضعيفة كلمة المرور var: UITextField!
IBOutlet ضعيف var passwordConfirm: UITextField!
...
IBAction func signUpAction (_ المرسل: أي) {
إذا password.text! = passwordConfirm.text {
واسمحوا alertController = UIAlertController (العنوان: "كلمة المرور غير صحيحة" ، الرسالة: "الرجاء إعادة كتابة كلمة المرور" ، المفضلالنمط: .alert)
اسمح defaultAction = UIAlertAction (title: "OK" ، النمط: .cancel ، المعالج: nil)
            
alertController.addAction (defaultAction)
self.present (alertController ، متحرك: صحيح ، إكمال: لا شيء)
        }
آخر{
Auth.auth (). createUser (withEmail: email.text!، password: password.text!) {(user، error) in
 إذا كان الخطأ == لا شيء {
   self.performSegue (withIdentifier: "signupToHome" ، المرسل: self)
                }
 آخر{
   واسمحوا alertController = UIAlertController (العنوان: "خطأ" ، رسالة: خطأ؟ .localizedDescription ، المفضل نمط: .alert)
   اسمح defaultAction = UIAlertAction (title: "OK" ، النمط: .cancel ، المعالج: nil)
                    
    alertController.addAction (defaultAction)
    self.present (alertController ، متحرك: صحيح ، إكمال: لا شيء)
       }
            }
      }
}

لنأخذ دقيقة لفهم ما يحدث هنا.

  • في حالة if ، نتأكد من أن كلمة المرور المقدمة وكلمة المرور المعاد كتابتها هي نفسها. إذا لم يكن كذلك ، فنحن نوفر للمستخدم تنبيهًا يقول "كلمة المرور غير صحيحة".
  • إذا كان كلاهما متساويان ، فإننا نمضي قدمًا ونخزن البيانات في قاعدة الحماية يشير الرمز أدناه إلى Firebase لإنشاء مستخدم مع البريد الإلكتروني وكلمة المرور من حقل النص. إذا حدث خطأ ، فنحن نوفر للمستخدم تنبيهًا آخر ، حيث نقوم بإجراء سلسلة إلى HomeViewController بمعرف "signupToHome" الذي نعده مسبقًا.
Auth.auth (). createUser (withEmail: email.text!، password: password.text!) {(user، error) in
...
}
  • وبالمثل ، في LoginViewController ، أضف التعليمات البرمجية التالية إلى loginAction () وظيفة.
IBAction func loginAction (_ المرسل: أي) {
      
Auth.auth (). signIn (withEmail: email.text!، password: password.text!) {(user، error) in
   إذا كان الخطأ == لا شيء {
     self.performSegue (withIdentifier: "loginToHome" ، المرسل: self)
                  }
    آخر{
     واسمحوا alertController = UIAlertController (العنوان: "خطأ" ، رسالة: خطأ؟ .localizedDescription ، المفضل نمط: .alert)
     اسمح defaultAction = UIAlertAction (title: "OK" ، النمط: .cancel ، المعالج: nil)
                    
      alertController.addAction (defaultAction)
      self.present (alertController ، متحرك: صحيح ، إكمال: لا شيء)
         }
}
        
}
  • طريقة Firebase المستخدمة هي .signIn (مع البريد الإلكتروني: البريد الإلكتروني ، كلمة المرور: كلمة المرور) لجعل المستخدم تسجيل الدخول باستخدام بيانات الاعتماد المستخدمة أثناء التسجيل.
  • أخيرًا ، افتح وحدة Firebase. ضمن علامة التبويب المصادقة ، انقر فوق "طريقة تسجيل الدخول" وقم بتمكين خيار "البريد الإلكتروني / كلمة المرور".
  • لنشغل التطبيق الآن لاختبار ما إذا كان الاشتراك يعمل.
  • الآن قم بتحديث Firebase وتحت المستخدمين ، سترى الحساب الذي قمت بالتسجيل به.
  • لاحظ أنه في كل مرة تقوم فيها بتشغيل التطبيق ، تتم مطالبتك بإدخال بيانات الاعتماد. لنجعل الإضافة النهائية للرمز حتى يتذكر التطبيق المستخدم.
  • انتقل إلى StartViewController الخاص بك ، وإضافة التعليمات البرمجية أدناه. يتم استخدام خاصية auth.auth (). currentUser لاسترداد المستخدم الحالي الذي قام بتسجيل الدخول باستخدام النظام.
تجاوز func viewDidAppear (_ متحركة: Bool) {
 super.viewDidAppear (الرسوم المتحركة)
 إذا Auth.auth (). currentUser! = لا شيء {
   self.performSegue (withIdentifier: "alreadyLoggedIn" ، المرسل: لا شيء)
}
}
  • لتسجيل الخروج من التطبيق ، أضفت زرًا في HomeViewController. إلى إجراء هذا الزر ، أضف التعليمات البرمجية التالية لتسجيل الخروج وتعيين ViewController إلى جذرها.
IBAction func logOutAction (_ المرسل: أي) {
     فعل {
            جرب Auth.auth (). signOut ()
        }
     catch let signOutError كـ NSError {
            طباعة ("خطأ في تسجيل الخروج:٪ @" ، signOutError)
        }
        
        دع القصة المصورة = UIStoryboard (الاسم: "الرئيسي" ، الحزمة: لا شيء)
        واسمحوا الأولي = storyboard.instantiateInitialViewController ()
        UIApplication.shared.keyWindow؟ .rootViewController = أولي
 }
  • لقد إنتهينا. :) قم بتشغيل التطبيق.

ملاحظة: HomeViewController لهذا المشروع هو الكاميرا التي قمت بإنشائها في تعليمي السابق. يمكنك فقط الانتقال إلى ViewController عادي مع مجرد زر ل LogOut.

المشروع الكامل متاح عبر رابط جيثب المذكور أدناه.

أرحب بجميع الملاحظات والاقتراحات. إذا كنت مهتمًا بالمزيد من البرامج التعليمية ، فقم بتعليق الموضوعات التي تهمك ، ويمكنني كتابة برامج تعليمية محددة. ترميز سعيد .. :)