Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now

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

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

חבר את האפליקציה שלך ל- 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, או אבות טיפוס של עיצובי ממשק משתמש של כניסה, היכולת לעבוד באופן מקומי ללא פריסת שירותים חיים יכולה להיות רעיון נהדר. .

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

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

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

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

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

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

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

מָהִיר

import Firebase

מטרה-ג

@import Firebase;

לאחר מכן, application:didFinishLaunchingWithOptions: השיטה, אתחל את האובייקט FirebaseApp :

מָהִיר

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

מטרה-ג

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

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

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

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

מָהִיר

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

מטרה-ג

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

viewWillDisappear את viewWillDisappear בשיטת viewWillDisappear של בקר 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 את הטופס, התקשר לשיטת 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;
  // ...
}

הצעדים הבאים

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