คุณสามารถใช้ Firebase Remote Config เพื่อกำหนดพารามิเตอร์ในแอปและอัปเดตค่าในระบบคลาวด์ ทำให้คุณสามารถแก้ไขลักษณะที่ปรากฏและลักษณะการทำงานของแอปได้โดยไม่ต้องกระจายการอัปเดตแอป คู่มือนี้จะแนะนำคุณตลอดขั้นตอนในการเริ่มต้นและให้โค้ดตัวอย่างบางส่วน
ขั้นตอนที่ 1: เพิ่ม Firebase และ Remote Config SDK ลงในแอปของคุณ
ติดตั้งและเริ่มต้น Firebase SDK สำหรับ Flutter หากคุณยังไม่ได้ดำเนินการ
สำหรับการกำหนดค่าระยะไกล จำเป็นต้องมี Google Analytics สำหรับ การกำหนดเป้าหมายตามเงื่อนไขของอินสแตนซ์แอป ไปยังพร็อพเพอร์ตี้ผู้ใช้และผู้ชม ตรวจสอบว่าคุณ เปิดใช้งาน Google Analytics ในโครงการของคุณ
จากไดเรกทอรีรากของโปรเจ็กต์ Flutter ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน Remote Config:
flutter pub add firebase_remote_config
นอกจากนี้ ในการตั้งค่าการกำหนดค่าระยะไกล คุณต้องเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปของคุณ:
flutter pub add firebase_analytics
สร้างโครงการของคุณใหม่:
flutter run
ขั้นตอนที่ 2: รับวัตถุซิงเกิลคอนฟิกระยะไกล
รับอินสแตนซ์ของวัตถุการกำหนดค่าระยะไกลและตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำเพื่อให้รีเฟรชบ่อยครั้ง:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
มีการใช้ singleton object เพื่อจัดเก็บค่าพารามิเตอร์เริ่มต้นในแอป ดึงข้อมูลค่าพารามิเตอร์ที่อัปเดตจากแบ็กเอนด์ และควบคุมว่าจะให้ค่าที่ดึงมาพร้อมใช้งานในแอปของคุณเมื่อใด
ในระหว่างการพัฒนา ขอแนะนำให้ตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำที่ค่อนข้างต่ำ ดู การควบคุม สำหรับข้อมูลเพิ่มเติม
ขั้นตอนที่ 3: ตั้งค่าพารามิเตอร์เริ่มต้นในแอป
คุณสามารถตั้งค่าพารามิเตอร์เริ่มต้นในแอปในออบเจ็กต์ Remote Config เพื่อให้แอปทำงานตามที่ตั้งใจไว้ก่อนที่จะเชื่อมต่อกับแบ็กเอนด์การกำหนดค่าระยะไกล และเพื่อให้มีค่าเริ่มต้นหากไม่มีการตั้งค่าไว้ในแบ็กเอนด์
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 เปิดโครงการของคุณ
- เลือก การกำหนดค่าระยะไกล จากเมนูเพื่อดูแดชบอร์ดการกำหนดค่าระยะไกล
- กำหนดพารามิเตอร์ด้วยชื่อเดียวกับพารามิเตอร์ที่คุณกำหนดในแอปของคุณ สำหรับแต่ละพารามิเตอร์ คุณสามารถตั้งค่าเริ่มต้น (ซึ่งจะแทนที่ค่าเริ่มต้นในแอปที่สอดคล้องกันในที่สุด) และคุณยังสามารถตั้งค่าตามเงื่อนไขได้อีกด้วย หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ พารามิเตอร์และเงื่อนไขการกำหนดค่าระยะไกล
ขั้นตอนที่ 6: ดึงข้อมูลและเปิดใช้งานค่า
หากต้องการดึงค่าพารามิเตอร์จากแบ็กเอนด์การกำหนดค่าระยะไกล ให้เรียกใช้เมธอด
fetch()
ค่าใดๆ ที่คุณตั้งค่าไว้ในแบ็กเอนด์จะถูกดึงข้อมูลและจัดเก็บไว้ในวัตถุการกำหนดค่าระยะไกลหากต้องการให้แอปของคุณใช้ค่าพารามิเตอร์ที่ดึงมาได้ ให้เรียกใช้เมธอด
activate()
สำหรับกรณีที่คุณต้องการดึงข้อมูลและเปิดใช้งานค่าในการเรียกครั้งเดียว คุณสามารถใช้คำขอ
fetchAndActivate()
เพื่อดึงค่าจากแบ็กเอนด์การกำหนดค่าระยะไกลและทำให้แอปพร้อมใช้งาน:await remoteConfig.fetchAndActivate();
เนื่องจากค่าพารามิเตอร์ที่อัปเดตเหล่านี้ส่งผลต่อลักษณะการทำงานและรูปลักษณ์ของแอป คุณจึงควรเปิดใช้งานค่าที่ดึงมาในแต่ละครั้งเพื่อให้แน่ใจว่าผู้ใช้จะได้รับประสบการณ์ที่ราบรื่น เช่น ในครั้งต่อไปที่ผู้ใช้เปิดแอปของคุณ ดู กลยุทธ์การโหลดการกำหนดค่าระยะไกล สำหรับข้อมูลเพิ่มเติมและตัวอย่าง
ขั้นตอนที่ 7: ฟังการอัปเดตตามเวลาจริง
หลังจากที่ดึงค่าพารามิเตอร์แล้ว คุณสามารถใช้การกำหนดค่าระยะไกลแบบเรียลไทม์เพื่อฟังการอัปเดตจากแบ็กเอนด์การกำหนดค่าระยะไกลได้ การกำหนดค่าระยะไกลแบบเรียลไทม์จะส่งสัญญาณไปยังอุปกรณ์ที่เชื่อมต่อเมื่อมีการอัปเดต และจะดึงข้อมูลการเปลี่ยนแปลงโดยอัตโนมัติหลังจากที่คุณเผยแพร่เวอร์ชันการกำหนดค่าระยะไกลใหม่
โปรดทราบว่าการกำหนดค่าระยะไกลแบบเรียลไทม์ไม่พร้อมใช้งานสำหรับเว็บ
ในแอปของคุณ ให้ใช้
onConfigUpdated
เพื่อเริ่มฟังการอัปเดตและดึงค่าพารามิเตอร์ใหม่ใดๆ โดยอัตโนมัติremoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
ครั้งต่อไปที่คุณเผยแพร่ Remote Config เวอร์ชันใหม่ อุปกรณ์ที่กำลังเรียกใช้แอปของคุณและรอฟังการเปลี่ยนแปลงจะเปิดใช้งานการกำหนดค่าใหม่
การควบคุมปริมาณ
หากแอปดึงข้อมูลหลายครั้งเกินไปในช่วงเวลาสั้นๆ การดึงข้อมูลจะถูกควบคุมและค่าของคุณสมบัติ lastFetchStatus
ของ FirebaseRemoteConfig
จะเป็น RemoteConfigFetchStatus.throttle
ช่วงเวลาการดึงข้อมูลขั้นต่ำเริ่มต้นสำหรับการกำหนดค่าระยะไกลคือ 12 ชั่วโมง ซึ่งหมายความว่าจะไม่มีการดึงข้อมูลการกำหนดค่าจากแบ็กเอนด์มากกว่าหนึ่งครั้งในกรอบเวลา 12 ชั่วโมง โดยไม่คำนึงว่ามีการเรียกใช้การดึงข้อมูลกี่ครั้ง
ในระหว่างการพัฒนาแอป หากคุณไม่ได้ใช้การกำหนดค่าระยะไกลแบบเรียลไทม์ (ซึ่งเราแนะนำ) คุณอาจต้องการดึงข้อมูลและเปิดใช้งานการกำหนดค่าบ่อยมาก (หลายครั้งต่อชั่วโมง) เพื่อให้คุณสามารถทำซ้ำได้อย่างรวดเร็วขณะที่คุณพัฒนาและทดสอบแอปของคุณ เพื่อรองรับการวนซ้ำอย่างรวดเร็วในโครงการที่มีนักพัฒนาสูงสุด 10 คน คุณสามารถกำหนดช่วงเวลาการดึงข้อมูลขั้นต่ำที่ต่ำเป็นการชั่วคราวด้วย setConfigSettings()
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
ขั้นตอนถัดไป
If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: