คุณใช้ 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 ลงในแอปแล้ว ให้ทำดังนี้
สร้างแอป Firebase โดยส่งสภาพแวดล้อม JNI และกิจกรรม
app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
เริ่มต้นใช้งานไลบรารี Remote Config ดังที่แสดง
::firebase::remote_config::Initialize(app);
iOS+
หลังจากเพิ่ม Firebase ลงในแอปแล้ว ให้ทำดังนี้
สร้างแอป Firebase โดยทำดังนี้
app = ::firebase::App::Create(::firebase::AppOptions());
เริ่มต้นใช้งานไลบรารี Remote Config ดังที่แสดง
::firebase::remote_config::Initialize(app);
ขั้นตอนที่ 3: ตั้งค่าพารามิเตอร์เริ่มต้นในแอป
คุณตั้งค่าพารามิเตอร์เริ่มต้นในแอปได้ในออบเจ็กต์ Remote Config เพื่อให้แอปทํางานตามที่ต้องการก่อนที่จะเชื่อมต่อกับแบ็กเอนด์ Remote Config และเพื่อให้ค่าเริ่มต้นพร้อมใช้งานหากไม่มีการตั้งค่าใดๆ ในแบ็กเอนด์
กําหนดชุดชื่อพารามิเตอร์และค่าพารามิเตอร์เริ่มต้นโดยใช้ออบเจ็กต์
ConfigKeyValue*
หรือออบเจ็กต์ConfigKeyValueVariant*
ที่มีขนาดของอาร์เรย์หากกำหนดค่าRemote Configค่าพารามิเตอร์แบ็กเอนด์ แล้ว คุณสามารถดาวน์โหลดไฟล์ที่มีคู่คีย์/ค่าเหล่านี้และใช้ เพื่อสร้างออบเจ็กต์
map
ได้ ดูข้อมูลเพิ่มเติมได้ที่ค่าเริ่มต้นของเทมเพลตดาวน์โหลด Remote Configเพิ่มค่าเหล่านี้ลงในออบเจ็กต์ Remote Config โดยใช้
SetDefaults()
ขั้นตอนที่ 4: รับค่าพารามิเตอร์เพื่อใช้ในแอป
ตอนนี้คุณรับค่าพารามิเตอร์จากออบเจ็กต์ Remote Config ได้แล้ว หากตั้งค่าในRemote Configแบ็กเอนด์ ดึงข้อมูล แล้วเปิดใช้งาน ค่าเหล่านั้นจะพร้อมใช้งานในแอปของคุณ มิฉะนั้น คุณจะได้รับค่าพารามิเตอร์ในแอปที่กำหนดค่าโดยใช้ SetDefaults()
หากต้องการรับค่าเหล่านี้ ให้เรียกใช้เมธอดที่ระบุไว้ด้านล่างซึ่งแมปกับประเภทข้อมูล ที่แอปคาดหวัง โดยระบุคีย์พารามิเตอร์เป็นอาร์กิวเมนต์
ขั้นตอนที่ 5: ตั้งค่าพารามิเตอร์
- เปิดโปรเจ็กต์ในคอนโซล Firebase
- เลือก Remote Config จากเมนูเพื่อดูแดชบอร์ด Remote Config
- กําหนดพารามิเตอร์ที่มีชื่อเดียวกับพารามิเตอร์ที่คุณกําหนดไว้ใน แอป สําหรับพารามิเตอร์แต่ละรายการ คุณสามารถตั้งค่าเริ่มต้น (ซึ่งจะ ลบล้างค่าเริ่มต้นในแอปในที่สุด) และค่าแบบมีเงื่อนไขได้ ดูข้อมูลเพิ่มเติมได้ที่Remote Configพารามิเตอร์และเงื่อนไข
ขั้นตอนที่ 6: ดึงข้อมูลและเปิดใช้งานค่า
- หากต้องการดึงค่าพารามิเตอร์จากแบ็กเอนด์ Remote Config ให้เรียกใช้เมธอด
Fetch()
ระบบจะดึงค่าที่คุณตั้งไว้ในแบ็กเอนด์และแคชไว้ในออบเจ็กต์ Remote Config - หากต้องการให้ค่าพารามิเตอร์ที่ดึงข้อมูลมาพร้อมใช้งานในแอป ให้เรียกใช้
ActivateFetched()
ขั้นตอนที่ 7: ฟังข้อมูลอัปเดตแบบเรียลไทม์
หลังจากดึงค่าพารามิเตอร์แล้ว คุณจะใช้ Remote Config แบบเรียลไทม์เพื่อ ฟังการอัปเดตจากแบ็กเอนด์ของ Remote Config ได้ สัญญาณแบบเรียลไทม์ Remote Configไปยังอุปกรณ์ที่เชื่อมต่อเมื่อมีการอัปเดตและ ดึงข้อมูลการเปลี่ยนแปลงโดยอัตโนมัติหลังจากที่คุณเผยแพร่Remote Config เวอร์ชันใหม่
Firebase C++ SDK เวอร์ชัน 11.0.0 ขึ้นไปรองรับการอัปเดตแบบเรียลไทม์สำหรับแพลตฟอร์ม Android และ Apple
- ในแอป ให้เรียกใช้
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 เวอร์ชันใหม่ อุปกรณ์ ที่เรียกใช้แอปและรอฟังการเปลี่ยนแปลงจะเรียกใช้เครื่องมือฟังการอัปเดตการกำหนดค่า
ขั้นตอนถัดไป
หากยังไม่ได้สำรวจ Remote Config กรณีการใช้งาน และดูเอกสารประกอบเกี่ยวกับแนวคิดหลักและกลยุทธ์ขั้นสูงบางส่วน ซึ่งรวมถึง