Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

ตรวจสอบสิทธิ์กับ Firebase โดยไม่ระบุตัวตนบน iOS

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

ก่อนที่คุณจะเริ่ม

  1. เพิ่ม Firebase ในโปรเจ็กต์ iOS ของคุณ
  2. รวม Podfile ต่อไปนี้ใน Podfile ของคุณ:
    pod 'Firebase/Auth'
    
  3. หากคุณยังไม่ได้เชื่อมต่อแอปของคุณกับโปรเจ็กต์ Firebase ให้ทำจาก คอนโซล Firebase
  4. เปิดใช้งานการตรวจสอบสิทธิ์แบบไม่ระบุตัวตน:
    1. ใน คอนโซล Firebase ให้เปิดส่วนการ ตรวจสอบสิทธิ์
    2. ใน หน้า วิธีการลงชื่อเข้าใช้ ให้เปิดใช้งานวิธีการลงชื่อเข้าใช้แบบ ไม่ระบุตัวตน

ตรวจสอบสิทธิ์กับ Firebase โดยไม่ระบุตัวตน

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

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

    รวดเร็ว

    import Firebase

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

    @import Firebase;
  2. กำหนดค่าอินสแตนซ์ที่แชร์ของ FirebaseApp โดยทั่วไปในแอปพลิเคชันของแอปของคุณ application:didFinishLaunchingWithOptions: method:

    รวดเร็ว

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

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

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. เรียก signInAnonymouslyWithCompletion: method:

    รวดเร็ว

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

    วัตถุประสงค์ -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
    

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

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

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

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

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

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

    รวดเร็ว
        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