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

ตรวจสอบสิทธิ์กับ Firebase โดยไม่ระบุชื่อโดยใช้ C++

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

ก่อนจะเริ่ม

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

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

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

Auth ชั้นเป็นประตูสำหรับทุกการเรียก API
  1. เพิ่มการตรวจสอบสิทธิ์และ App ไฟล์ส่วนหัว:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. ในรหัสการเริ่มต้นของคุณให้สร้าง firebase::App ระดับ
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
    
  3. ได้รับ firebase::auth::Auth ชั้นเรียนสำหรับคุณ firebase::App มีแบบหนึ่งต่อหนึ่งระหว่างการทำแผนที่เป็น App และ Auth
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • โทร Auth::SignInAnonymously
    firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
    
  • ถ้าโปรแกรมของคุณมีห่วงปรับปรุงที่วิ่งอย่างสม่ำเสมอ (พูดวันที่ 30 หรือ 60 ครั้งต่อวินาที) คุณสามารถตรวจสอบผลครั้งต่อการปรับปรุงกับ Auth::SignInAnonymouslyLastResult :
    firebase::Future<firebase::auth::User*> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::User* user = *result.result();
        printf("Sign in succeeded for `%s`\n", user->display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    หรือถ้าโปรแกรมของคุณเป็นเหตุการณ์ที่ขับเคลื่อนด้วยคุณอาจต้องการ เพื่อ ลงทะเบียนโทรกลับในอนาคต
  • แปลงบัญชีที่ไม่ระบุตัวตนเป็นบัญชีถาวร

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

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

      ลงชื่อเข้าใช้ Google
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      Facebook เข้าสู่ระบบ
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      อีเมล์รหัสผ่านเข้าสู่ระบบใน
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
    3. ผ่านการ auth::Credential วัตถุลงชื่อเข้าใช้ของผู้ใช้ LinkWithCredential วิธีการ:

      // Link the new credential to the currently active user.
      firebase::auth::User* current_user = auth->current_user();
      firebase::Future<firebase::auth::User*> result =
          current_user->LinkWithCredential(credential);
      

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

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

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