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