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

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

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

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

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

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

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

คลาส Auth เป็นเกตเวย์สำหรับการเรียก API ทั้งหมด
  1. เพิ่มไฟล์ส่วนหัว Auth และ 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