אתה יכול להשתמש באימות Firebase כדי לאפשר למשתמשים שלך לבצע אימות עם Firebase באמצעות כתובות האימייל והסיסמאות שלהם, וכדי לנהל את החשבונות מבוססי הסיסמה של האפליקציה שלך.
לפני שאתה מתחיל
השתמש ב-Swift Package Manager כדי להתקין ולנהל תלות ב-Firebase.
- ב-Xcode, כשפרויקט האפליקציה שלך פתוח, נווט אל קובץ > הוסף חבילות .
- כאשר תתבקש, הוסף את מאגר Firebase Apple platforms SDK:
- בחר את ספריית האימות של Firebase.
- בסיום, Xcode יתחיל באופן אוטומטי לפתור ולהוריד את התלות שלך ברקע.
https://github.com/firebase/firebase-ios-sdk
לאחר מכן, בצע כמה שלבי תצורה:
- אם עדיין לא חיברת את האפליקציה שלך לפרויקט Firebase שלך, עשה זאת ממסוף Firebase .
- אפשר כניסה לאימייל/סיסמה:
- במסוף Firebase , פתח את הקטע Auth .
- בכרטיסייה שיטת כניסה , הפעל את שיטת הכניסה לדוא"ל/סיסמה ולחץ על שמור .
צור חשבון מבוסס סיסמה
כדי ליצור חשבון משתמש חדש עם סיסמה, בצע את השלבים הבאים בפעילות הכניסה של האפליקציה שלך:
- ייבא את מודול
FirebaseCore
ב-UIApplicationDelegate
שלך, כמו גם כל מודולי Firebase אחרים שנציג האפליקציה שלך משתמש בו. לדוגמה, כדי להשתמש ב-Cloud Firestore ובאימות:מָהִיר
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- הגדר מופע משותף של
FirebaseApp
, בדרך כלל בשיטה שלapplication:didFinishLaunchingWithOptions:
::מָהִיר
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- כאשר משתמש חדש נרשם באמצעות טופס ההרשמה של האפליקציה שלך, השלם את כל שלבי אימות החשבון החדשים שהאפליקציה שלך דורשת, כגון אימות שהסיסמה של החשבון החדש הוקלדה כהלכה ועומדת בדרישות המורכבות שלך.
- צור חשבון חדש על ידי העברת כתובת הדוא"ל והסיסמה של המשתמש החדש ליצירת
createUserWithEmail:email:password:completion:
.אם החשבון החדש נוצר בהצלחה, המשתמש מחובר, ותוכל לקבל את נתוני החשבון של המשתמש מאובייקט התוצאה שהועבר לשיטת ההתקשרות חזרה.מָהִיר
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in // ... }
Objective-C
[[FIRAuth auth] createUserWithEmail:email password:password completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
היכנס למשתמש עם כתובת אימייל וסיסמה
השלבים לכניסה למשתמש עם סיסמה דומים לשלבים ליצירת חשבון חדש. בפעילות הכניסה של האפליקציה שלך, בצע את הפעולות הבאות:
- ייבא את מודול
FirebaseCore
ב-UIApplicationDelegate
שלך, כמו גם כל מודולי Firebase אחרים שנציג האפליקציה שלך משתמש בו. לדוגמה, כדי להשתמש ב-Cloud Firestore ובאימות:מָהִיר
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- הגדר מופע משותף של
FirebaseApp
, בדרך כלל בשיטה שלapplication:didFinishLaunchingWithOptions:
::מָהִיר
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- כאשר משתמש נכנס לאפליקציה שלך, העבר את כתובת האימייל והסיסמה של המשתמש ל-
signInWithEmail:email:password:completion:
.אם המשתמש נכנס בהצלחה, תוכל לקבל את נתוני החשבון של המשתמש מאובייקט התוצאה שהועבר לשיטת ההתקשרות חזרה.מָהִיר
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) { // ... }];
הצעדים הבאים
לאחר שמשתמש נכנס בפעם הראשונה, נוצר חשבון משתמש חדש ומקושר לאישורים - כלומר, שם המשתמש והסיסמה, מספר הטלפון או פרטי ספק האישורים - המשתמש נכנס איתו. החשבון החדש הזה מאוחסן כחלק מפרויקט Firebase שלך, וניתן להשתמש בו כדי לזהות משתמש בכל אפליקציה בפרויקט שלך, ללא קשר לאופן שבו המשתמש נכנס.
באפליקציות שלך, תוכל לקבל את פרטי הפרופיל הבסיסיים של המשתמש מאובייקט
FIRUser
. ראה ניהול משתמשים .בכללי האבטחה של מסד הנתונים בזמן אמת של Firebase ואחסון בענן , תוכל לקבל את מזהה המשתמש הייחודי של המשתמש
auth
ממשתנה האימות, ולהשתמש בו כדי לשלוט לאילו נתונים המשתמש יכול לגשת.
אתה יכול לאפשר למשתמשים להיכנס לאפליקציה שלך באמצעות מספר ספקי אימות על ידי קישור אישורי ספק אימות לחשבון משתמש קיים.
כדי לצאת ממשתמש, התקשר signOut:
.
מָהִיר
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print("Error signing out: %@", signOutError) }
Objective-C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
ייתכן שתרצה להוסיף קוד טיפול בשגיאות עבור כל מגוון שגיאות האימות. ראה טיפול בשגיאות .