จริงสิ ! ถ้าอยากให้แอพ Force Update เราใช้ Firebase ก็ได้นะ

Mission วันนี้คือ force update app ดังนั้นเราจึงเลือกใช้หนึ่งในบริการของ firebase นั้นก็คือ Firebase RemoteConfig ค่ะ (ทดลองใน ios)

Firebase RemoteConfig นั้นทำให้คุณสามารถ update data ไปที่แอพของคุณเมื่อไรก็ได้ตามต้องการ

เริ่มกันเถอะ

  • add firebase เข้าไปในโปรเจคก่อนค่ะ ตามนี้ค่ะ
  • ทำการเพิ่มใน Podfile
pod 'Firebase/RemoteConfig'
  • save แล้ว install กันค่ะ
pod install

  • ไปที่ Firebase console เมนู Remote Config ทำการสร้างพารามิเตอร์แล้วกด publish จ้า มาดูเรื่องของพารามิเตอร์ที่เราจะสร้างกันซักนิด

Priority of parameter value

จากเอกสาร https://firebase.google.com/docs/remote-config/parameters
  • Server-side ถ้ามีการตั้งเงื่อนไข ก็จะให้ความสำคัญกับค่าที่ถูกกำหนดจากเงื่อนไขก่อน ลำดับต่อมาก็เป็นค่า default
ตัวอย่างพารามิเตอร์ใน firebase console
  • Client ค่าที่ดึงจาก server และมีการ activated สำคัญสุด รองลงมา เป็นค่า default ในแอพ ถ้าไม่มี default ก็จะใช้ค่า static type value เช่น int ค่าเริ่มต้นก็เป็น 0 หรือ boolean ค่าเริ่มต้นก็เป็น false เพราะฉะนั้นในกรณีนี้ เราเลยกำหนดค่า default ไว้ในแอพ

ต่อค่ะ

เรามาสร้างพารามิเตอร์ของ mission เราคือ force update แอพ ดังนั้นพารามิเตอร์ที่เราต้องการเก็บก็น่าจะมี version, url ที่จะพาไปอัปเดต เห็นมันมีการสร้าง condition เลยแอบสร้างเล่นดู ก็เลยคิดกรณีที่ถ้าเครื่องไม่อยู่ไทยก็เปิดแอพไม่ได้ ก็ลองเลือกเล่นเพื่อความเข้าใจนะค่ะ


  • เปิดไฟล์ .xcworkspace ขึ้นมาค่ะ เราเริ่มจากสร้างไฟล์ .plist สำหรับเป็นค่าเริ่มต้นของพารามิเตอร์ในแอพ

อธิบายเล็กน้อย … น้อยจริง จริง อย่างแรกที่ทำก็คือ การ set default พารามิเตอร์ โดยให้โหลดจาก .plist ที่เราสร้าง แล้วสามารถก็ทำการดึงค่าโดยใช้คำสั่ง

FIRRemoteConfig.remoteConfig().configValue(forKey: "force_update_version").stringValue

mission เราแค่ลองดึงมาค่า version มาเทียบเน้อว่าควรอัพเดตมัย แล้วก้อเอาค่า url new version ให้ไปโหลดใหม่

ผลลัพธ์

อีกเล็กน้อยเกี่ยวกับ

Caching ! ค่าที่เราดึงมา default ของ cache คือ 12 ชม

โดยเราสามารถกำหนด expire cache ด้วย method fetchWithExpirationDuration:completionHandler:

แต่ในระหว่างเราพัฒนาแอพถ้าเราต้องการเทส เพื่อความเร็วรวดก็สามารถเปิด โหมดใน FIRRemoteConfigSettings property isDeveloperModeEnabled เป็น true

สำหรับ Firebase RemoteConfig น่าต่อยอดทำประโยชน์ใช้ร่วมกับบริการอื่นๆ ของ firebase ได้อีกหลากหลาย เรื่องนี้ก้อน่าจะใช้ FCM ในการแจ้งเพื่อ force update แอพ ได้ !

Mission Complete !! ขอบพระคุณเวลาและโอกาสที่ได้ทำการทดลองทำค่ะ

A single golf clap? Or a long standing ovation?

By clapping more or less, you can signal to us which stories really stand out.