คุณสามารถใช้การกำหนดค่าระยะไกลของ 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
- เลือกการกําหนดค่าระยะไกลจากเมนูเพื่อดูแดชบอร์ดการกําหนดค่าระยะไกล
- กําหนดพารามิเตอร์ที่มีชื่อเดียวกับพารามิเตอร์ที่คุณกําหนดในแอป คุณสามารถกําหนดค่าเริ่มต้นสําหรับพารามิเตอร์แต่ละรายการได้ (ซึ่งจะลบล้างค่าเริ่มต้นในแอปที่เกี่ยวข้องในที่สุด) และคุณยังกําหนดค่าแบบมีเงื่อนไขได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่พารามิเตอร์และเงื่อนไขการกําหนดค่าระยะไกล
ขั้นตอนที่ 6: ดึงข้อมูลและเปิดใช้งานค่า
หากต้องการดึงข้อมูลค่าพารามิเตอร์จากแบ็กเอนด์ของการกำหนดค่าระยะไกล ให้เรียกใช้เมธอด
fetch()
ค่าที่คุณกำหนดในแบ็กเอนด์จะถูกดึงข้อมูลและเก็บไว้ในออบเจ็กต์การกำหนดค่าระยะไกลหากต้องการให้แอปใช้ค่าพารามิเตอร์ที่ดึงมาได้ ให้เรียกใช้เมธอด
activate()
ในกรณีที่คุณต้องการดึงข้อมูลและเปิดใช้งานค่าในการเรียกใช้ครั้งเดียว คุณสามารถใช้คําขอ
fetchAndActivate()
เพื่อดึงข้อมูลจากแบ็กเอนด์ของการกำหนดค่าระยะไกลและทําให้ค่าพร้อมใช้งานสําหรับแอป ดังนี้await remoteConfig.fetchAndActivate();
เนื่องจากค่าพารามิเตอร์ที่อัปเดตเหล่านี้ส่งผลต่อลักษณะการทำงานและลักษณะที่ปรากฏของแอป คุณจึงควรเปิดใช้งานค่าที่ดึงข้อมูลในเวลาที่ผู้ใช้ได้รับประสบการณ์การใช้งานที่ราบรื่น เช่น เมื่อผู้ใช้เปิดแอปของคุณในครั้งถัดไป ดูข้อมูลเพิ่มเติมและตัวอย่างได้ที่กลยุทธ์การโหลดการกําหนดค่าระยะไกล
ขั้นตอนที่ 7: ฟังการอัปเดตแบบเรียลไทม์
หลังจากดึงข้อมูลค่าพารามิเตอร์แล้ว คุณจะใช้การกําหนดค่าระยะไกลแบบเรียลไทม์เพื่อรอการอัปเดตจากแบ็กเอนด์ของการกำหนดค่าระยะไกลได้ การกำหนดค่าระยะไกลแบบเรียลไทม์จะส่งสัญญาณไปยังอุปกรณ์ที่เชื่อมต่อเมื่อมีการอัปเดตและดึงข้อมูลการเปลี่ยนแปลงโดยอัตโนมัติหลังจากที่คุณเผยแพร่การกำหนดค่าระยะไกลเวอร์ชันใหม่
โปรดทราบว่าการกำหนดค่าระยะไกลแบบเรียลไทม์ไม่พร้อมใช้งานบนเว็บ
ในแอป ให้ใช้
onConfigUpdated
เพื่อเริ่มการรอการอัปเดตและดึงข้อมูลค่าพารามิเตอร์ใหม่โดยอัตโนมัติremoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
ครั้งต่อไปที่คุณเผยแพร่การกำหนดค่าระยะไกลเวอร์ชันใหม่ อุปกรณ์ที่เรียกใช้แอปของคุณและรอรับการเปลี่ยนแปลงจะเปิดใช้งานการกำหนดค่าใหม่
การควบคุม
หากแอปดึงข้อมูลหลายครั้งในระยะเวลาสั้นๆ ระบบจะจำกัดการเรียกดึงข้อมูลและค่าของพร็อพเพอร์ตี้ lastFetchStatus
ของ FirebaseRemoteConfig
จะเป็น RemoteConfigFetchStatus.throttle
ช่วงเวลาการดึงข้อมูลขั้นต่ำเริ่มต้นสำหรับการกำหนดค่าระยะไกลคือ 12 ชั่วโมง ซึ่งหมายความว่าระบบจะไม่ดึงข้อมูลการกําหนดค่าจากแบ็กเอนด์มากกว่า 1 ครั้งในกรอบเวลา 12 ชั่วโมง ไม่ว่าจะมีการเรียกใช้การดึงข้อมูลจริงกี่ครั้งก็ตาม
ในระหว่างการพัฒนาแอป หากคุณไม่ได้ใช้การกำหนดค่าระยะไกลแบบเรียลไทม์ (ซึ่งเราขอแนะนำ) คุณอาจต้องดึงข้อมูลและเปิดใช้งานการกำหนดค่าบ่อยๆ (หลายครั้งต่อชั่วโมง) เพื่อให้คุณปรับปรุงอย่างรวดเร็วขณะพัฒนาและทดสอบแอป หากต้องการรองรับการดำเนินการซ้ำอย่างรวดเร็วในโปรเจ็กต์ที่มีนักพัฒนาซอฟต์แวร์ไม่เกิน 10 ราย คุณตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำให้ต่ำเป็นการชั่วคราวได้ด้วย setConfigSettings()
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
ขั้นตอนถัดไป
หากยังไม่ได้ดู ให้ลองดูRemote Config กรณีการใช้งานและอ่านเอกสารประกอบเกี่ยวกับแนวคิดหลักและกลยุทธ์ขั้นสูงบางส่วน ซึ่งได้แก่