Check out what’s new from Firebase at Google I/O 2022. Learn more

เริ่มต้นใช้งาน Firebase Remote Config

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

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

คู่มือนี้จะแนะนำคุณตลอดขั้นตอนในการเริ่มต้นและให้โค้ดตัวอย่าง ซึ่งทั้งหมดนั้นพร้อมสำหรับการโคลนหรือดาวน์โหลดจากที่เก็บ Firebase/quickstart-unity GitHub

เพิ่ม Remote Config ให้กับแอพของคุณ

ก่อนที่คุณจะสามารถใช้ Remote Config คุณต้อง:

  • ลงทะเบียนโครงการ Unity ของคุณและกำหนดค่าให้ใช้ Firebase

    • หากโปรเจ็กต์ Unity ของคุณใช้ Firebase อยู่แล้ว แสดงว่าได้ลงทะเบียนและกำหนดค่าสำหรับ Firebase แล้ว

    • หากคุณไม่มีโปรเจ็กต์ Unity คุณสามารถดาวน์โหลด แอปตัวอย่าง ได้

  • เพิ่ม Firebase Unity SDK (โดยเฉพาะ FirebaseRemoteConfig.unitypackage ) ให้กับโปรเจ็กต์ Unity ของคุณ

โปรดทราบว่าการเพิ่ม Firebase ให้กับโปรเจ็กต์ Unity ของคุณเกี่ยวข้องกับงานทั้งใน คอนโซล Firebase และในโครงการ Unity แบบเปิดของคุณ (เช่น คุณดาวน์โหลดไฟล์กำหนดค่า Firebase จากคอนโซล จากนั้นย้ายไปยังโปรเจ็กต์ Unity ของคุณ)

ตั้งค่าพารามิเตอร์เริ่มต้นในแอป

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

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

(คุณสมบัติที่ไม่ใช่สตริงจะถูกแปลงเป็นประเภทของคุณสมบัติเมื่อมีการเรียก SetDefaultsAsync() )

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

รับค่าพารามิเตอร์เพื่อใช้ในแอปของคุณ

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

ในการรับค่าเหล่านี้ ให้ใช้ GetValue() โดยระบุคีย์พารามิเตอร์เป็นอาร์กิวเมนต์ ส่งคืน ConfigValue ซึ่งมีคุณสมบัติในการแปลงค่าเป็นประเภทฐานต่างๆ

เชื่อมต่อแอปของคุณในคอนโซล Firebase

ใน คอนโซล Firebase ให้เพิ่มแอปของคุณในโครงการ Firebase

ตั้งค่าพารามิเตอร์

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

ดึงและเปิดใช้งานค่า (ตามต้องการ)

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

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

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

(ไม่บังคับ) เปิดใช้งานโหมดนักพัฒนาซอฟต์แวร์

ในการเปิดใช้งานโหมดนักพัฒนาซอฟต์แวร์ ซึ่งสามารถใช้เพื่อปิดการควบคุมปริมาณในระหว่างการพัฒนา คุณสามารถใช้คุณสมบัติ FirebaseRemoteConfig.Setting การตั้งค่า ConfigSettings ใหม่ด้วย IsDeveloperMode ที่ตั้งค่าเป็นจริง

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

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