אימות עם Firebase באופן אנונימי ב- iOS

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

לפני שאתה מתחיל

  1. להוסיף Firebase לפרויקט iOS שלך .
  2. כלול את התרמילים הבאים שלך Podfile :
    pod 'Firebase/Auth'
    
  3. אם עדיין לא מחוברת האפליקציה שלך לפרויקט Firebase שלך, לעשות זאת מתוך קונסולת Firebase .
  4. אפשר הרשאה אנונימית:
    1. בשנות ה קונסולת Firebase , פתח את הקטע המחבר.
    2. ביום כניסת שיטות הדף, לאפשר הכניסה אנונימי שיטה.

אימות עם Firebase באופן אנונימי

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

  1. ייבא את מודול Firebase ב שלך UIApplicationDelegate :

    מָהִיר

    import Firebase

    Objective-C

    @import Firebase;
  2. & Nbsp הגדר FirebaseApp משותף למשל, בדרך כלל של האפליקציה שלך application:didFinishLaunchingWithOptions: השיטה:

    מָהִיר

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. התקשר signInAnonymouslyWithCompletion: שיטה:

    מָהִיר

    Auth.auth().signInAnonymously { authResult, error in
      // ...
    }
    

    Objective-C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. אם signInAnonymouslyWithCompletion: השלימה שיטה ללא שגיאה, אתה יכול לקבל את נתוני החשבון של משתמש אנונימי מן FIRAuthDataResult האובייקט:

    מָהִיר

    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;
    

המרת חשבון אנונימי לחשבון קבוע

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

  1. כאשר המשתמש נרשם, להשלים את כניסת הזרימה של ספק האימות של המשתמש עד, אך לא כולל, קורא אחד FIRAuth.signInWith השיטות. לדוגמה, קבל את אסימון מזהה Google של המשתמש, אסימון הגישה לפייסבוק או כתובת הדוא"ל והסיסמה.
  2. קבל FIRAuthCredential עבור ספק האימות החדש:

    כניסה ל- Google
    מָהִיר
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    Objective-C
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    כניסה לפייסבוק
    מָהִיר
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    Objective-C
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    כניסה למייל באמצעות סיסמה
    מָהִיר
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    Objective-C
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. תעביר את FIRAuthCredential האובייקט אל הכניסה של המשתמש linkWithCredential:completion: השיטה:

    מָהִיר
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    
    Objective-C
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

אם קריאת linkWithCredential:completion: מצליחה, החשבון החדש של המשתמש יכול לגשת לנתוני Firebase של החשבון אנונימי.

הצעדים הבאים

עכשיו משתמשים יכולים לאמת עם Firebase, אתה יכול לשלוט בגישה שלהם נתונים במסד הנתונים Firebase באמצעות כללים Firebase .