Catch up on everthing we announced at this year's Firebase Summit. Learn more

בצע אימות עם Firebase באופן אנונימי בפלטפורמות של Apple

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

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

השתמש ב-Swift Package Manager כדי להתקין ולנהל תלות ב-Firebase.

  1. בשנת Xcode, עם פרויקט היישום שלך פתוח, נווט אל קובץ> חבילות סוויפט> הוסף תלות חבילה.
  2. כאשר תתבקש, הוסף את מאגר Firebase Apple platforms SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. בחר את ספריית האימות של Firebase.
  5. בסיום, Xcode יתחיל באופן אוטומטי לפתור ולהוריד את התלות שלך ברקע.

לאחר מכן, בצע כמה שלבי תצורה:

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

    כניסה לגוגל
    מָהִיר
    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 .