เริ่มต้นใช้งานการกำหนดค่าระยะไกลของ Firebase


คุณสามารถใช้การกำหนดค่าระยะไกลของ Firebase เพื่อกำหนดพารามิเตอร์ในแอปและอัปเดตค่าในระบบคลาวด์ ซึ่งจะช่วยให้คุณแก้ไขรูปลักษณ์และลักษณะการทำงานของแอปได้โดยไม่ต้องเผยแพร่การอัปเดตแอป คู่มือนี้จะอธิบายขั้นตอนเริ่มต้นใช้งานและแสดงตัวอย่างโค้ด

ขั้นตอนที่ 1: เพิ่ม Firebase และ SDK การกำหนดค่าระยะไกลลงในแอป

  1. ติดตั้งและเริ่มต้นใช้งาน Firebase SDK สําหรับ Flutter หากยังไม่ได้ทํา

  2. การกำหนดค่าระยะไกลต้องใช้ Google Analytics ในการกำหนดเป้าหมายแบบมีเงื่อนไขของอินสแตนซ์แอปไปยังพร็อพเพอร์ตี้ผู้ใช้และกลุ่มเป้าหมาย โปรดตรวจสอบว่า คุณจะเปิดใช้ Google Analytics ในโปรเจ็กต์ได้

  3. จากไดเรกทอรีรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอินการกำหนดค่าระยะไกล

    flutter pub add firebase_remote_config
    

    นอกจากนี้ คุณยังต้องเพิ่ม Firebase SDK ในฐานะส่วนหนึ่งของการตั้งค่าการกำหนดค่าระยะไกล Google Analytics ไปยังแอปของคุณ

    flutter pub add firebase_analytics
    
  4. สร้างโปรเจ็กต์อีกครั้งโดยทำดังนี้

    flutter run
    
  5. หากใช้การกำหนดค่าระยะไกลใน macOS ให้เปิดใช้ การแชร์พวงกุญแจ ใน Xcode

ขั้นตอนที่ 2: รับออบเจ็กต์ Singleton สำหรับการกำหนดค่าระยะไกล

รับอินสแตนซ์ออบเจ็กต์การกำหนดค่าระยะไกล แล้วตั้งค่า ช่วงเวลาการดึงข้อมูลขั้นต่ำเพื่อให้มีการรีเฟรชบ่อยๆ:

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(hours: 1),
));

ออบเจ็กต์แบบสแตนด์อโลนใช้เพื่อจัดเก็บค่าพารามิเตอร์เริ่มต้นในแอป ดึงข้อมูลค่าพารามิเตอร์ที่อัปเดตจากแบ็กเอนด์ และควบคุมเวลาที่แอปจะใช้ค่าที่ดึงข้อมูลได้

ระหว่างการพัฒนา ขอแนะนำให้ตั้งค่าการดึงข้อมูลขั้นต่ำค่อนข้างต่ำ ช่วงเวลา โปรดดูข้อมูลเพิ่มเติมที่การควบคุม

ขั้นตอนที่ 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 ในการสร้างค่าเหล่านี้

  1. เปิดโปรเจ็กต์ในคอนโซล Firebase
  2. เลือกการกำหนดค่าระยะไกลจากเมนูเพื่อดูการกำหนดค่าระยะไกล หน้าแดชบอร์ด
  3. กําหนดพารามิเตอร์ที่มีชื่อเดียวกับพารามิเตอร์ที่คุณกําหนดในแอป คุณสามารถกําหนดค่าเริ่มต้นสําหรับพารามิเตอร์แต่ละรายการได้ (ซึ่งจะลบล้างค่าเริ่มต้นในแอปที่เกี่ยวข้องในที่สุด) และคุณยังกําหนดค่าแบบมีเงื่อนไขได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่พารามิเตอร์และเงื่อนไขการกําหนดค่าระยะไกล

ขั้นตอนที่ 6: ดึงข้อมูลและเปิดใช้งานค่า

  1. หากต้องการดึงข้อมูลค่าพารามิเตอร์จากแบ็กเอนด์ของการกำหนดค่าระยะไกล ให้เรียกใช้เมธอด fetch() ระบบจะดึงข้อมูลค่าที่คุณตั้งค่าไว้ในแบ็กเอนด์และจัดเก็บไว้ในออบเจ็กต์การกำหนดค่าระยะไกล

  2. หากต้องการให้ค่าพารามิเตอร์ที่ดึงข้อมูลไว้ใช้กับแอปได้ ให้เรียกใช้เมธอด activate() วิธี

    ในกรณีที่คุณต้องการดึงข้อมูลและเปิดใช้งานค่าในการเรียกใช้ครั้งเดียว คุณสามารถใช้คําขอ fetchAndActivate() เพื่อดึงข้อมูลจากแบ็กเอนด์ของการกำหนดค่าระยะไกลและทําให้ค่าพร้อมใช้งานสําหรับแอป ดังนี้

    await remoteConfig.fetchAndActivate();
    

เนื่องจากค่าพารามิเตอร์ที่อัปเดตเหล่านี้ส่งผลต่อลักษณะการทำงานและรูปลักษณ์ คุณควรเปิดใช้งานค่าที่ดึงมาในช่วงเวลาเพื่อให้แน่ใจว่า ได้อย่างราบรื่นสำหรับผู้ใช้ เช่น ครั้งต่อไปที่ผู้ใช้เปิด แอป ดูกลยุทธ์การโหลดการกำหนดค่าระยะไกล สำหรับข้อมูลเพิ่มเติมและตัวอย่าง

ขั้นตอนที่ 7: ฟังการอัปเดตแบบเรียลไทม์

หลังจากดึงข้อมูลค่าพารามิเตอร์แล้ว คุณจะใช้การกําหนดค่าระยะไกลแบบเรียลไทม์เพื่อรอการอัปเดตจากแบ็กเอนด์ของการกำหนดค่าระยะไกลได้ การกำหนดค่าระยะไกลแบบเรียลไทม์จะส่งสัญญาณไปยังอุปกรณ์ที่เชื่อมต่อเมื่อมีการอัปเดตและดึงข้อมูลการเปลี่ยนแปลงโดยอัตโนมัติหลังจากที่คุณเผยแพร่การกำหนดค่าระยะไกลเวอร์ชันใหม่

โปรดทราบว่าการกำหนดค่าระยะไกลแบบเรียลไทม์ไม่พร้อมใช้งานบนเว็บ

  1. ในแอป ให้ใช้ onConfigUpdated เพื่อเริ่มการรอการอัปเดตและดึงข้อมูลค่าพารามิเตอร์ใหม่โดยอัตโนมัติ

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. ครั้งต่อไปที่คุณเผยแพร่การกำหนดค่าระยะไกลเวอร์ชันใหม่ อุปกรณ์ที่ กำลังใช้แอปของคุณอยู่และการรอดูการเปลี่ยนแปลงจะเปิดใช้งานการกำหนดค่าใหม่

การควบคุม

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