谷歌致力於推進種族平等的黑人社區。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

身份驗證與火力地堡匿名在iOS

您可以使用火力地堡驗證創建和使用臨時匿名賬戶的火力地堡進行身份驗證。這些臨時匿名賬戶可以用來讓誰尚未簽署了您的應用程序的工作與安全規則保護數據的用戶。如果匿名用戶決定申請到您的應用程序,你可以聯繫他們的登錄憑據匿名帳戶 ,以便他們可以繼續工作,在今後的會議所保護的數據。

在你開始之前

  1. 添加火力地堡到iOS項目
  2. 包括在你的下面的吊艙Podfile
    pod 'Firebase/Auth'
    
  3. 如果您還沒有連接您的應用程序到你的火力地堡項目,從這樣做火力地堡控制台
  4. 啟用匿名身份驗證:
    1. 火力地堡控制台 ,打開驗證部分。
    2. 登錄的方法頁面上,啟用匿名登錄方法。

與火力地堡匿名身份驗證

當登出的用戶使用的應用程序功能,它通過完成以下步驟需要在用戶與火力地堡認證,標誌匿名:

  1. 導入火力地堡模塊在UIApplicationDelegate

    迅速

    import Firebase

    Objective-C的

    @import Firebase;
  2. 配置一個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方法。例如,獲得用戶的谷歌ID令牌,Facebook的訪問令牌,或者電子郵件地址和密碼。
  2. 找一個FIRAuthCredential新身份驗證提供:

    谷歌登錄在
    迅速
    guard let authentication = user.authentication else { return }
    let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken,
                                                      accessToken: authentication.accessToken)
    
    Objective-C的
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    Facebook登入
    迅速
    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:成功,用戶的新帳戶可以訪問匿名帳戶的火力地堡數據。

下一步

現在,用戶可以與火力地堡進行身份驗證,就可以控制他們使用你的火力地堡數據庫中的數據訪問火力地堡規則