יש לך אפשרות להשתמש ב-Firebase Authentication כדי ליצור חשבונות אנונימיים זמניים ולהשתמש בהם צריך לבצע אימות ב-Firebase. אפשר להשתמש בחשבונות האנונימיים הזמניים האלה כדי לאפשר למשתמשים שעדיין לא נרשמו לאפליקציה שלכם לעבוד עם נתונים שמוגנים על ידי כללי אבטחה. אם משתמש אנונימי מחליט להירשם לאפליקציה, אתם יכולים לקשר את פרטי הכניסה שלהם לאנונימיים כדי שיוכלו להמשיך לעבוד עם הנתונים המוגנים שלהם ובסשנים עתידיים.
לפני שמתחילים
-
שימוש ב-Swift Package Manager כדי להתקין ולנהל יחסי תלות ב-Firebase.
- ב-Xcode, כשפרויקט האפליקציה פתוח, עוברים אל File > (קובץ >) הוספת חבילות.
- כשמופיעה בקשה, מוסיפים את מאגר ה-SDK של מוצרי הפלטפורמה של Firebase של Apple:
- בוחרים את הספרייה Firebase Authentication.
- מוסיפים את הדגל
-ObjC
לקטע Other Linker Flags (דגלים אחרים של קישור) בהגדרות ה-build של היעד. - בסיום, Xcode יתחיל לפתור את הבעיה ותוריד את של יחסי התלות ברקע.
https://github.com/firebase/firebase-ios-sdk.git
- אם עדיין לא קישרתם את האפליקציה לפרויקט Firebase, תוכלו לעשות זאת דרך מסוף Firebase.
- מפעילים את האימות האנונימי:
- במסוף Firebase, פותחים את הקטע Auth.
- בדף Sign-in Methods מפעילים את שיטת הכניסה Anonymous.
- אופציונלי: אם שדרגתם את הפרויקט ל- Firebase Authentication with Identity Platform, אפשר להפעיל את הניקוי האוטומטי. מתי אם תפעילו את ההגדרה הזו, חשבונות אנונימיים מלפני יותר מ-30 יום יועברו אוטומטית נמחק. בפרויקטים שבהם מופעל הניקוי האוטומטי, האימות האנונימי לא נכללות במגבלות השימוש או במכסות החיוב. ניקוי אוטומטי
אימות עם Firebase באופן אנונימי
כשמשתמש שלא מחובר לחשבון משתמש בתכונה באפליקציה שמחייבת אימות באמצעות ב-Firebase, מבצעים את הפעולות הבאות כדי להיכנס למשתמש באופן אנונימי:
- מייבאים את המודול
FirebaseCore
ב-UIApplicationDelegate
, וגם את כל המודולים האחרים של Firebase שבהם משתמש הנציג של האפליקציה. לדוגמה, כדי להשתמש ב-Cloud Firestore וב-Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- הגדרה של
FirebaseApp
במופע משותף של האפליקציה שיטתapplication(_:didFinishLaunchingWithOptions:)
:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- אם אתם משתמשים ב-SwiftUI, עליכם ליצור נציג אפליקציה ולצרף אותו למבנה
App
דרךUIApplicationDelegateAdaptor
אוNSApplicationDelegateAdaptor
. צריך גם להשבית את האפשרות להענקת גישה לאפליקציה. עבור לקבלת מידע נוסף, קראו את ההוראות של SwiftUI.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- קוראים לשיטה
signInAnonymouslyWithCompletion:
:Swift
Auth.auth().signInAnonymously { authResult, error in // ... }
Objective-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- אם השיטה
signInAnonymouslyWithCompletion:
מסתיימת ללא שגיאה, אפשר לקבל את נתוני החשבון של המשתמש האנונימי מהאובייקטFIRAuthDataResult
:Swift
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Objective-C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
המרת חשבון אנונימי לחשבון קבוע
כשמשתמש אנונימי נרשם לאפליקציה שלך, כדאי לאפשר לו להמשיך את העבודה עם החשבון החדש, לדוגמה, להגדיר את הפריטים שהמשתמש הוסיף לעגלת הקניות לפני ההרשמה זמינים בעגלת הקניות בחשבון החדש. כדי לעשות את זה, מבצעים את הפעולות הבאות שלבים:
- כשהמשתמש נרשם, משלימים את תהליך הכניסה לחשבון
ספק אימות עד, אך לא כולל, התקשרות לאחד
FIRAuth.signInWith
אמצעי תשלום. לדוגמה, משיגים את האסימון המזהה של המשתמש ב-Google, אסימון גישה של Facebook, או כתובת אימייל וסיסמה. מקבלים
FIRAuthCredential
עבור ספק האימות החדש:כניסה באמצעות חשבון Google
Swift
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Objective-C
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
התחברות ל-Facebook
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
כניסה באמצעות סיסמה לאימייל
Swift
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Objective-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
מעבירים את האובייקט
FIRAuthCredential
אל של המשתמש שמבצע את הכניסהlinkWithCredential:completion:
method:Swift
user.link(with: credential) { authResult, error in // ... } }
Objective-C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
אם הקריאה אל linkWithCredential:completion:
תתבצע בהצלחה, החשבון החדש של המשתמש יוכל
לגשת לנתוני Firebase של החשבון האנונימי.
ניקוי אוטומטי
אם שדרגתם את הפרויקט ל-Firebase Authentication with Identity Platform, תוכלו: להפעיל ניקוי אוטומטי במסוף Firebase. כשמפעילים את התכונה הזו, מאפשרים Firebase ימחק באופן אוטומטי חשבונות אנונימיים מלפני יותר מ-30 יום. בפרויקטים שבהם הפעלתם את הניקוי האוטומטי, אימות אנונימי לא ייספר במסגרת מגבלות השימוש או המכסות לחיוב.
- חשבונות אנונימיים שנוצרו אחרי הפעלת הניקוי האוטומטי עשויים להימחק באופן אוטומטי בכל שלב אחרי 30 יום ממועד היצירה.
- חשבונות אנונימיים קיימים יימחקו באופן אוטומטי 30 יום אחרי הפעלת הניקוי האוטומטי.
- אם משביתים את הניקוי האוטומטי, כל החשבונות האנונימיים שתזמנתם למחיקה ימשיכו להיות מתוזמנים למחיקה.
- אם מבצעים "שדרוג" חשבון אנונימי על ידי קישור שלו לכל שיטת כניסה, לא יימחקו באופן אוטומטי.
אם אתם רוצים לראות כמה משתמשים יושפעו לפני שתפעילו את התכונה הזו,
שדרג את הפרויקט ל-Firebase Authentication with Identity Platform, אפשר לסנן לפי
is_anon
ב-Cloud
רישום ביומן.
השלבים הבאים
עכשיו, שהמשתמשים יכולים לבצע אימות באמצעות Firebase, יש לך אפשרות לשלוט בגישה שלהם אל במסד הנתונים של Firebase באמצעות כללים ב-Firebase.