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


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

ขั้นตอนที่ 1: เพิ่ม Firebase และ Remote Config SDK ลงในแอปของคุณ

  1. ติดตั้งและเริ่มต้น Firebase SDK สำหรับ Flutter หากคุณยังไม่ได้ดำเนินการ

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

  3. จากไดเร็กทอรีรากของโปรเจ็กต์ Flutter ของคุณ ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน Remote Config:

    flutter pub add firebase_remote_config
    

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

    flutter pub add firebase_analytics
    
  4. สร้างโครงการของคุณใหม่:

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

ขั้นตอนที่ 2: รับวัตถุซิงเกิลตันการกำหนดค่าระยะไกล

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

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: รับค่าพารามิเตอร์เพื่อใช้ในแอปของคุณ

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

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

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

ขั้นตอนถัดไป

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