คุณใช้การกำหนดค่าระยะไกลของ 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 ให้เปิดใช้การแชร์พวงกุญแจใน 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),
));
ขั้นตอนถัดไป
หากยังไม่ทราบข้อมูล ให้ลองดูกรณีการใช้งานการกำหนดค่าระยะไกลและดูแนวคิดหลักบางส่วนและเอกสารกลยุทธ์ขั้นสูงซึ่งได้แก่