เริ่มต้นใช้งานการกำหนดค่าระยะไกลใน C++

เลือกแพลตฟอร์ม: iOS+ Android Web Flutter Unity C++


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

ไลบรารี Remote Config ใช้เพื่อจัดเก็บค่าพารามิเตอร์เริ่มต้นในแอป ดึงค่าพารามิเตอร์ที่อัปเดตจากแบ็กเอนด์ Remote Config และควบคุมเวลาที่จะทำให้ค่าที่ดึงมาพร้อมใช้งานในแอป ดูข้อมูลเพิ่มเติมได้ที่กลยุทธ์การโหลดการกำหนดค่าระยะไกล

ขั้นตอนที่ 1: เพิ่ม Firebase ลงในแอป

คุณต้องดำเนินการต่อไปนี้ก่อนจึงจะใช้ Remote Config, ได้

  • ลงทะเบียนโปรเจ็กต์ C++ และกำหนดค่าให้ใช้ Firebase

    หากโปรเจ็กต์ C++ ใช้ Firebase อยู่แล้ว แสดงว่าโปรเจ็กต์ได้ลงทะเบียนและกำหนดค่าสำหรับ Firebase แล้ว

  • เพิ่ม Firebase C++ SDK ลงในโปรเจ็กต์ C++

โปรดทราบว่าการเพิ่ม Firebase ลงในโปรเจ็กต์ C++ เกี่ยวข้องกับงานทั้งใน Firebaseคอนโซลและในโปรเจ็กต์ C++ ที่เปิดอยู่ (เช่น คุณดาวน์โหลด ไฟล์กำหนดค่า Firebase จากคอนโซล แล้วย้ายไฟล์เหล่านั้นไปยังโปรเจ็กต์ C++)

ขั้นตอนที่ 2: เพิ่ม Remote Config ลงในแอป

Android

หลังจากเพิ่ม Firebase ลงในแอปแล้ว ให้ทำดังนี้

  1. สร้างแอป Firebase โดยส่งผ่านสภาพแวดล้อม JNI และกิจกรรม

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. เริ่มต้นไลบรารี Remote Config ดังที่แสดงด้านล่าง

    ::firebase::remote_config::Initialize(app);

iOS+

หลังจากเพิ่ม Firebase ลงในแอปแล้ว ให้ทำดังนี้

  1. สร้างแอป Firebase

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. เริ่มต้นไลบรารี Remote Config ดังที่แสดงด้านล่าง

    ::firebase::remote_config::Initialize(app);

ขั้นตอนที่ 3: กำหนดค่าพารามิเตอร์เริ่มต้นในแอป

คุณสามารถกำหนดค่าพารามิเตอร์เริ่มต้นในแอปในRemote Config ออบเจ็กต์ เพื่อให้แอปทำงานตามที่ต้องการก่อนที่จะเชื่อมต่อกับ Remote Configแบ็กเอนด์ และเพื่อให้ค่าเริ่มต้นพร้อมใช้งานในกรณีที่ไม่ได้ ตั้งค่าไว้ในแบ็กเอนด์

  1. กำหนดชุดชื่อพารามิเตอร์และค่าพารามิเตอร์เริ่มต้นโดยใช้a ConfigKeyValue* ออบเจ็กต์ หรือa ConfigKeyValueVariant* ออบเจ็กต์ ที่มีขนาดของอาร์เรย์

    หากกำหนดค่าพารามิเตอร์แบ็กเอนด์ Remote Config ไว้แล้ว คุณสามารถดาวน์โหลดไฟล์ที่มีคู่คีย์-ค่าเหล่านี้และใช้ ไฟล์ดังกล่าวเพื่อสร้างออบเจ็กต์ map ได้ ดูข้อมูลเพิ่มเติมได้ที่ ดาวน์โหลด Remote Configค่าเริ่มต้นของเทมเพลต

  2. เพิ่มค่าเหล่านี้ลงในออบเจ็กต์ Remote Config โดยใช้ SetDefaults()

ขั้นตอนที่ 4: รับค่าพารามิเตอร์สำหรับใช้ในแอป

ตอนนี้คุณสามารถรับค่าพารามิเตอร์จากออบเจ็กต์ Remote Config ได้แล้ว หากคุณตั้งค่า ในแบ็กเอนด์ Remote Config ดึงค่าเหล่านั้น และเปิดใช้งานแล้ว ค่าเหล่านั้นจะพร้อมใช้งานในแอป ไม่เช่นนั้นคุณจะได้รับค่าพารามิเตอร์ในแอป ที่กำหนดค่าโดยใช้ SetDefaults()

หากต้องการรับค่าเหล่านี้ ให้เรียกใช้เมธอดใดเมธอดหนึ่งต่อไปนี้ที่แมปกับประเภทข้อมูลที่แอปคาดหวัง โดยระบุคีย์พารามิเตอร์เป็นอาร์กิวเมนต์

ขั้นตอนที่ 5: กำหนดค่าพารามิเตอร์

  1. ในคอนโซล Firebase ให้ไปที่ DevOps และการมีส่วนร่วม > การกำหนดค่าระยะไกล

  2. กำหนดพารามิเตอร์ที่มีชื่อเดียวกับพารามิเตอร์ที่คุณกำหนดไว้ในแอป สำหรับพารามิเตอร์แต่ละรายการ คุณสามารถกำหนดค่าเริ่มต้น (ซึ่งจะลบล้างค่าเริ่มต้นในแอปในที่สุด) และค่าตามเงื่อนไขได้ ดูข้อมูลเพิ่มเติมได้ที่ Remote Configพารามิเตอร์และเงื่อนไข

ขั้นตอนที่ 6: ดึงข้อมูลและเปิดใช้งานค่า

  1. หากต้องการดึงค่าพารามิเตอร์จากแบ็กเอนด์ Remote Config ให้เรียกใช้เมธอด Fetch() ระบบจะดึงค่าที่คุณตั้งไว้ในแบ็กเอนด์และแคชไว้ใน ออบเจ็กต์ Remote Config
  2. หากต้องการทำให้ค่าพารามิเตอร์ที่ดึงมาพร้อมใช้งานในแอป ให้เรียกใช้ ActivateFetched()

ขั้นตอนที่ 7: ฟังการอัปเดตแบบเรียลไทม์

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

Firebase C++ SDK เวอร์ชัน 11.0.0 ขึ้นไปรองรับการอัปเดตแบบเรียลไทม์สำหรับแพลตฟอร์ม Android และ Apple

  1. ในแอป ให้เรียกใช้ AddOnConfigUpdateListener เพื่อเริ่มฟังการอัปเดตและดึงค่าพารามิเตอร์ใหม่หรือที่อัปเดตโดยอัตโนมัติ ตัวอย่างต่อไปนี้จะฟังการอัปเดต และเมื่อมีการเรียกใช้ Activate ก็จะใช้ค่าที่ดึงมาใหม่เพื่อแสดงข้อความต้อนรับที่อัปเดต
remote_config->AddOnConfigUpdateListener(
    [](firebase::remote_config::ConfigUpdate&& config_update,
       firebase::remote_config::RemoteConfigError remote_config_error) {
      if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) {
        printf("Error listening for config updates: %d", remote_config_error);
      }
      // Search the `updated_keys` set for the key "welcome_message."
      // `updated_keys` represents the keys that have changed since the last
      // fetch.
      if (std::find(config_update.updated_keys.begin(),
                    config_update.updated_keys.end(),
                    "welcome_message") != config_update.updated_keys.end()) {
        remote_config->Activate().OnCompletion(
            [&](const firebase::Future& completed_future,
               void* user_data) {
              // The key "welcome_message" was found within `updated_keys` and
              // can be activated.
              if (completed_future.error() == 0) {
                DisplayWelcomeMessage();
              } else {
                printf("Error activating config: %d", completed_future.error());
              }
            },
            nullptr);
      }
    });

ในครั้งถัดไปที่คุณเผยแพร่ Remote Config เวอร์ชันใหม่ อุปกรณ์ ที่เรียกใช้แอปและฟังการเปลี่ยนแปลงจะเรียกใช้ Listener การอัปเดตการกำหนดค่า