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

เลือกแพลตฟอร์ม: iOS+ Android Web Flutter Unity C++


คุณสามารถใช้การกำหนดค่าระยะไกลของ 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 ให้เปิดใช้ การแชร์ 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 หรือ Remote Config Backend 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),
));