התחל בעבודה עם אימות Firebase ב- iOS

תוכל להשתמש באימות Firebase כדי לאפשר למשתמשים להיכנס לאפליקציה שלך באמצעות שיטת כניסה אחת או יותר, כולל כתובת דוא"ל וכניסה באמצעות סיסמה וספקי זהויות מאוחדים כגון כניסה ל- Google והתחברות בפייסבוק. הדרכה זו מתחילה אותך עם אימות Firebase על ידי כך שתראה כיצד להוסיף כתובת דוא"ל וכניסה באמצעות סיסמה לאפליקציה שלך.

חבר את האפליקציה שלך ל- Firebase

  1. התקן את Firebase SDK .
  2. בשנות ה קונסולת Firebase , להוסיף את האפליקציה אל הפרויקט Firebase שלך.

הוסף את אימות Firebase לאפליקציה שלך

  1. מוסיפים את התלות עבור Firebase אימות כדי הפרויקט שלך Podfile :

    pod 'Firebase/Auth'
    
  2. הפעלת pod install ולפתוח את יצר .xcworkspace הקובץ.

(אופציונלי) אב טיפוס ובדיקה עם חבילת אמולטור מקומית של Firebase

לפני שנדבר על האופן שבו האפליקציה שלך מאמתת משתמשים, הבה נציג קבוצה של כלים שבהם תוכל להשתמש כדי ליצור אב טיפוס ולבדוק את פונקציונליות האימות: חבילת Emulator Local של Firebase. אם אתה מחליט בין שיטות וספקי אימות, לנסות מודלים שונים של נתונים עם נתונים ציבוריים ופרטיים באמצעות כללי אבטחה ו- Firebase או עיצוב אבות-עיצוב של ממשקי ממשק משתמש, יכול לעבוד באופן מקומי מבלי לפרוס שירותים חיים יכול להיות רעיון מצוין .

אמולטור אימות הוא חלק מחבילת האימולטור המקומי, המאפשרת לאפליקציה שלך לקיים אינטראקציה עם תוכן מסדי נתונים וחיקוי, כמו גם משאבי הפרויקט החיקויים שלך (פונקציות, מסדי נתונים אחרים וכללי אבטחה).

השימוש באמולטור האימות כולל רק כמה שלבים:

  1. הוספת שורה של קוד לתצורת הבדיקה של האפליקציה שלך כדי להתחבר לאמולטור.
  2. מן השורש של ספריית הפרויקט המקומית, פועל firebase emulators:start .
  3. שימוש בממשק המשתמש של Local Emulator Suite לאב טיפוס אינטראקטיבי, או בממשק ה- API REST של אמולטור האימות לבדיקות לא אינטראקטיביות.

מדריך מפורט זמין בכתובת קישור האפליקציה שלך האמולטור אימות . לקבלת מידע נוסף, ראה מבוא Suite Emulator המקומי .

עכשיו בואו נמשיך כיצד לאמת משתמשים.

אתחל את ה- SDK של Firebase

בנציג האפליקציות שלך, ייבא תחילה את ה- SDK של Firebase:

מָהִיר

import Firebase

Objective-C

@import Firebase;

ואז, בתוך application:didFinishLaunchingWithOptions: שיטה, לאתחל את FirebaseApp האובייקט:

מָהִיר

// Use Firebase library to configure APIs
FirebaseApp.configure()

Objective-C

// Use Firebase library to configure APIs
[FIRApp configure];

האזן למצב אימות

עבור כל אחת מהתצוגות של האפליקציה שלך שמידע הצורך על המשתמש המחובר, לצרף המאזין אל FIRAuth האובייקט. מאזין זה מתקשר בכל פעם שמצב הכניסה של המשתמש משתנה.

צרף את המאזין של בקר נוף viewWillAppear שיטה:

מָהִיר

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

Objective-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

ולנתק את המאזין של בקר הנוף viewWillDisappear שיטה:

מָהִיר

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[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 }
  // ...
}

Objective-C

[[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;
  // ...
}

הצעדים הבאים

למד כיצד להוסיף תמיכה עבור ספקי זהות אחרים וחשבונות אורח אנונימיים: