Google มุ่งมั่นที่จะพัฒนาความเท่าเทียมทางเชื้อชาติสำหรับชุมชนคนผิวดำ มาดูกันว่า
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

รับรองความถูกต้องกับ Firebase โดยไม่ระบุชื่อโดยใช้ C ++

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

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

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

รับรองความถูกต้องกับ Firebase โดยไม่ระบุชื่อ

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

คลาส Auth เป็นเกตเวย์สำหรับการโทร API ทั้งหมด
  1. เพิ่มไฟล์ส่วนหัว Auth และ App:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. ในรหัสเริ่มต้นของคุณสร้าง firebase::App คลาส 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 class 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 ความถูก 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 วัตถุ 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