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. เมื่อได้รับแจ้ง ให้เพิ่มที่เก็บ SDK ของแพลตฟอร์ม Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. เลือกไลบรารีการตรวจสอบสิทธิ์ Firebase
  5. เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการพึ่งพาของคุณในเบื้องหลังโดยอัตโนมัติ

ถัดไป ดำเนินการตามขั้นตอนการกำหนดค่า:

  1. หากคุณยังไม่ได้เชื่อมต่อแอปของคุณให้กับโครงการ Firebase ของคุณทำเช่นนั้นจาก คอนโซล Firebase
  2. เปิดใช้งานการตรวจสอบแบบไม่ระบุชื่อ:
    1. ใน Firebase คอนโซล , เปิดส่วนการตรวจสอบสิทธิ์
    2. ในการเข้าสู่ระบบในหน้าวิธีการเปิดใช้งานไม่ประสงค์ออกนามลงชื่อเข้าใช้วิธีการ

ตรวจสอบสิทธิ์ด้วย Firebase โดยไม่เปิดเผยตัวตน

เมื่อผู้ใช้ที่ออกจากระบบใช้ฟีเจอร์แอปที่ต้องมีการตรวจสอบสิทธิ์ด้วย Firebase ให้ลงชื่อเข้าใช้ผู้ใช้โดยไม่ระบุตัวตนโดยทำตามขั้นตอนต่อไปนี้

  1. นำเข้าโมดูล Firebase ในของคุณ UIApplicationDelegate :

    Swift

    import Firebase

    วัตถุประสงค์-C

    @import Firebase;
  2. กำหนดค่า FirebaseApp ที่ใช้ร่วมกันเช่นปกติในของแอป application:didFinishLaunchingWithOptions: วิธีการ:

    Swift

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

    วัตถุประสงค์-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. โทร signInAnonymouslyWithCompletion: วิธีการ:

    Swift

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

    วัตถุประสงค์-C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. หาก signInAnonymouslyWithCompletion: วิธีการเสร็จสมบูรณ์ไม่มีข้อผิดพลาดคุณจะได้รับข้อมูลบัญชีของผู้ใช้ที่ไม่ระบุชื่อจาก FIRAuthDataResult วัตถุ:

    Swift

    guard let user = authResult?.user else { return }
    let isAnonymous = user.isAnonymous  // true
    let uid = user.uid
    

    วัตถุประสงค์-C

    FIRUser *user = authResult.user;
    BOOL isAnonymous = user.anonymous;  // YES
    NSString *uid = user.uid;
    

แปลงบัญชีที่ไม่ระบุตัวตนเป็นบัญชีถาวร

เมื่อผู้ใช้ที่ไม่ระบุชื่อลงชื่อสมัครใช้แอปของคุณ คุณอาจต้องการอนุญาตให้พวกเขาทำงานต่อด้วยบัญชีใหม่ของพวกเขา ตัวอย่างเช่น คุณอาจต้องการให้สินค้าที่ผู้ใช้เพิ่มลงในตะกร้าสินค้าก่อนที่จะลงชื่อสมัครใช้ในใหม่ ตะกร้าสินค้าของบัญชี โดยทำตามขั้นตอนต่อไปนี้:

  1. เมื่อผู้ใช้สัญญาณขึ้นเสร็จสิ้นการเข้าสู่ระบบในการไหลสำหรับผู้ให้บริการการตรวจสอบสิทธิ์ของผู้ใช้ขึ้นไป แต่ไม่รวมถึงเรียกร้องหนึ่งใน FIRAuth.signInWith วิธี ตัวอย่างเช่น รับโทเค็น Google ID ของผู้ใช้ โทเค็นการเข้าถึง Facebook หรือที่อยู่อีเมลและรหัสผ่าน
  2. รับ FIRAuthCredential สำหรับผู้ให้บริการตรวจสอบใหม่:

    ลงชื่อเข้าใช้ Google
    Swift
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    วัตถุประสงค์-C
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    เข้าสู่ระบบ Facebook
    Swift
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    วัตถุประสงค์-C
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    อีเมลรหัสผ่านลงชื่อเข้าใช้
    Swift
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    วัตถุประสงค์-C
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. ผ่าน FIRAuthCredential วัตถุลงชื่อเข้าใช้ของผู้ใช้ linkWithCredential:completion: วิธีการ:

    Swift
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    
    วัตถุประสงค์-C
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

หากการเรียกร้องให้ linkWithCredential:completion: ประสบความสำเร็จบัญชีใหม่ของผู้ใช้สามารถเข้าถึงข้อมูล Firebase บัญชีที่ไม่ระบุชื่อของ

ขั้นตอนถัดไป

ตอนนี้ผู้ใช้สามารถตรวจสอบกับ Firebase คุณสามารถควบคุมการเข้าถึงข้อมูลในฐานข้อมูล Firebase ของคุณโดยใช้ กฎ Firebase