| เลือกแพลตฟอร์ม: | iOS+ Android เว็บ Flutter Unity C++ |
คุณสามารถใช้การกำหนดค่าระยะไกลของ Firebase เพื่อกำหนดพารามิเตอร์ในแอปและอัปเดต ค่าในระบบคลาวด์ ซึ่งจะช่วยให้คุณแก้ไขหน้าตาและลักษณะการทำงานของ แอปได้โดยไม่ต้องเผยแพร่การอัปเดตแอป คู่มือนี้จะแนะนำขั้นตอนการเริ่มต้นใช้งานและแสดง โค้ดตัวอย่าง
ขั้นตอนที่ 1: เพิ่ม Firebase และ SDK การกำหนดค่าระยะไกลลงในแอป
ติดตั้งและเริ่มต้นใช้งาน Firebase SDK สำหรับ Flutter หากยังไม่ได้ทำ
การกำหนดค่าระยะไกลต้องใช้ Google Analytics ในการ กำหนดเป้าหมายแบบมีเงื่อนไขของอินสแตนซ์แอป ไปยังพร็อพเพอร์ตี้ผู้ใช้และกลุ่มเป้าหมาย ตรวจสอบว่าคุณได้เปิดใช้ Google Analytics ในโปรเจ็กต์แล้ว
จากไดเรกทอรีรากของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอินการกำหนดค่าระยะไกล
flutter pub add firebase_remote_configนอกจากนี้ ในขั้นตอนการตั้งค่าการกำหนดค่าระยะไกล คุณต้องเพิ่ม Firebase SDK สําหรับ Google Analytics ลงในแอปด้วย โดยทําดังนี้
flutter pub add firebase_analyticsสร้างโปรเจ็กต์ใหม่
flutter runหากใช้การกำหนดค่าระยะไกลใน macOS ให้เปิดใช้ การแชร์ Keychain ใน Xcode
ขั้นตอนที่ 2: สร้างออบเจ็กต์ Singleton สำหรับการกำหนดค่าระยะไกล
สร้างอินสแตนซ์ออบเจ็กต์การกำหนดค่าระยะไกล แล้วตั้ง ช่วงการดึงข้อมูลขั้นต่ำเพื่อให้มีการรีเฟรชบ่อยๆ
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
ออบเจ็กต์ Singleton ใช้เพื่อจัดเก็บค่าพารามิเตอร์เริ่มต้นในแอป ดึงค่าพารามิเตอร์ที่อัปเดตจากแบ็กเอนด์ และควบคุมเวลาที่ค่าที่ดึงมาพร้อมใช้งานในแอป
ในระหว่างการพัฒนา เราขอแนะนําให้ตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำที่ค่อนข้างต่ำ ดูข้อมูลเพิ่มเติมได้ที่การควบคุมอัตราการส่ง
ขั้นตอนที่ 3: ตั้งค่าพารามิเตอร์เริ่มต้นในแอป
คุณสามารถตั้งค่าพารามิเตอร์เริ่มต้นในแอปในออบเจ็กต์การกำหนดค่าระยะไกล เพื่อให้แอปทํางานตามที่ต้องการก่อนที่จะเชื่อมต่อกับแบ็กเอนด์ของการกำหนดค่าระยะไกล และเพื่อให้ค่าเริ่มต้นพร้อมใช้งานหากไม่มีการตั้งค่าใดๆ ในแบ็กเอนด์
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
ขั้นตอนที่ 4: รับค่าพารามิเตอร์เพื่อใช้ในแอป
ตอนนี้คุณรับค่าพารามิเตอร์จากออบเจ็กต์การกำหนดค่าระยะไกลได้แล้ว หากคุณตั้งค่าในแบ็กเอนด์ ให้ดึงข้อมูลและเปิดใช้งานค่าเหล่านั้น
แอปจะใช้ค่าเหล่านั้นได้ มิฉะนั้น คุณจะได้รับค่าพารามิเตอร์ในแอป
ที่กำหนดค่าโดยใช้ setDefaults()
หากต้องการรับค่าเหล่านี้ ให้เรียกใช้เมธอดต่อไปนี้ที่เชื่อมโยงกับประเภทข้อมูล ที่แอปของคุณคาดหวัง โดยระบุคีย์พารามิเตอร์เป็นอาร์กิวเมนต์
getBool()getDouble()getInt()getString()
ขั้นตอนที่ 5: กำหนดค่าพารามิเตอร์ในแบ็กเอนด์ของการกำหนดค่าระยะไกล
การใช้คอนโซล Firebase หรือ API แบ็กเอนด์ของการกำหนดค่าระยะไกล จะช่วยให้คุณสร้างค่าเริ่มต้นใหม่ฝั่งเซิร์ฟเวอร์ที่ลบล้างค่าในแอป ตามตรรกะแบบมีเงื่อนไขหรือการกำหนดเป้าหมายผู้ใช้ที่ต้องการได้ ส่วนนี้ อธิบายขั้นตอนในคอนโซล Firebase เพื่อสร้างค่าเหล่านี้
ในคอนโซล Firebase ให้ไปที่ DevOps และการมีส่วนร่วม > Remote Config
กําหนดพารามิเตอร์ที่มีชื่อเดียวกันกับพารามิเตอร์ที่คุณกําหนดไว้ใน แอป สําหรับแต่ละพารามิเตอร์ คุณสามารถตั้งค่าเริ่มต้น (ซึ่งจะ ลบล้างค่าเริ่มต้นในแอปที่เกี่ยวข้องในที่สุด) และยังตั้งค่าแบบมีเงื่อนไขได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่ พารามิเตอร์และเงื่อนไขของ การกำหนดค่าระยะไกล
ขั้นตอนที่ 6: ดึงข้อมูลและเปิดใช้งานค่า
หากต้องการดึงค่าพารามิเตอร์จากแบ็กเอนด์ของการกำหนดค่าระยะไกล ให้เรียกใช้เมธอด
fetch()ระบบจะดึงค่าที่คุณตั้งไว้ในแบ็กเอนด์ และจัดเก็บไว้ในออบเจ็กต์การกำหนดค่าระยะไกลหากต้องการให้ค่าพารามิเตอร์ที่ดึงข้อมูลพร้อมใช้งานในแอป ให้เรียกใช้เมธอด
activate()ในกรณีที่คุณต้องการดึงข้อมูลและเปิดใช้งานค่าในการเรียกครั้งเดียว คุณ สามารถใช้คำขอ
fetchAndActivate()เพื่อดึงค่าจาก แบ็กเอนด์ของการกำหนดค่าระยะไกลและทำให้ค่าเหล่านั้นพร้อมใช้งานในแอปได้await remoteConfig.fetchAndActivate();
เนื่องจากค่าพารามิเตอร์ที่อัปเดตเหล่านี้ส่งผลต่อลักษณะการทำงานและลักษณะที่ปรากฏ ของแอป คุณจึงควรเปิดใช้งานค่าที่ดึงมาในเวลาที่รับประกัน ประสบการณ์การใช้งานที่ราบรื่นสำหรับผู้ใช้ เช่น ครั้งถัดไปที่ผู้ใช้เปิดแอปของคุณ ดูข้อมูลและตัวอย่างเพิ่มเติมได้ที่กลยุทธ์การโหลดการกำหนดค่าระยะไกล
ขั้นตอนที่ 7: ฟังข้อมูลอัปเดตแบบเรียลไทม์
หลังจากดึงค่าพารามิเตอร์แล้ว คุณสามารถใช้การกำหนดค่าระยะไกลแบบเรียลไทม์เพื่อฟัง การอัปเดตจากแบ็กเอนด์ของการกำหนดค่าระยะไกล สัญญาณการกำหนดค่าระยะไกลแบบเรียลไทม์จะส่งไปยังอุปกรณ์ที่เชื่อมต่อเมื่อมีการอัปเดต และจะดึงข้อมูลการเปลี่ยนแปลงโดยอัตโนมัติหลังจากที่คุณเผยแพร่การกำหนดค่าระยะไกลเวอร์ชันใหม่
โปรดทราบว่า Remote Config แบบเรียลไทม์ไม่พร้อมใช้งานสำหรับเว็บ
ในแอป ให้ใช้
onConfigUpdatedเพื่อเริ่มฟังการอัปเดตและ ดึงค่าพารามิเตอร์ใหม่โดยอัตโนมัติremoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });เมื่อคุณเผยแพร่การกำหนดค่าระยะไกลเวอร์ชันใหม่ในครั้งถัดไป อุปกรณ์ที่ เรียกใช้แอปและรอฟังการเปลี่ยนแปลงจะเปิดใช้งานการกำหนดค่าใหม่
การควบคุม
หากแอปดึงข้อมูลหลายครั้งเกินไปในช่วงเวลาสั้นๆ ระบบจะจำกัดจำนวนการเรียกข้อมูลและค่าพร็อพเพอร์ตี้ lastFetchStatus ของ FirebaseRemoteConfig จะเป็น RemoteConfigFetchStatus.throttle
ช่วงเวลาการดึงข้อมูลขั้นต่ำเริ่มต้นสำหรับ Remote Config คือ 12 ชั่วโมง ซึ่งหมายความว่าระบบจะไม่ดึงข้อมูลการกำหนดค่าจากแบ็กเอนด์มากกว่า 1 ครั้งในกรอบเวลา 12 ชั่วโมง ไม่ว่าจะมีจำนวนการเรียกดึงข้อมูลจริงกี่ครั้งก็ตาม
ในระหว่างการพัฒนาแอป หากไม่ได้ใช้การกำหนดค่าระยะไกลแบบเรียลไทม์ (ซึ่งเราขอแนะนำ) คุณอาจต้องดึงข้อมูลและเปิดใช้งานการกำหนดค่าบ่อยมาก (หลายครั้งต่อชั่วโมง) เพื่อให้คุณทำซ้ำได้อย่างรวดเร็วขณะพัฒนาและทดสอบแอป เพื่อรองรับการทำซ้ำอย่างรวดเร็วในโปรเจ็กต์ที่มีนักพัฒนาแอปสูงสุด 10 คน คุณสามารถตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำต่ำชั่วคราวด้วย setConfigSettings()
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));