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

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

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

  1. ติดตั้ง Firebase SDK สำหรับแพลตฟอร์ม Apple

  2. สร้าง singleton Remote Config object ตามที่แสดงในตัวอย่างต่อไปนี้:

    Swift

    remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 0
    remoteConfig.configSettings = settings

    วัตถุประสงค์-C

    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
    remoteConfigSettings.minimumFetchInterval = 0;
    self.remoteConfig.configSettings = remoteConfigSettings;

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

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

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

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

  1. กำหนดชุดของชื่อพารามิเตอร์ และค่าพารามิเตอร์เริ่มต้นโดยใช้วัตถุ NSDictionary หรือ ไฟล์ plist

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

    พักผ่อน

    curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=PLIST -o RemoteConfigDefaults.plist
    

    คอนโซล Firebase

    1. ในแท็บ Parameters ให้เปิด Menu และเลือก Download default values

    2. เมื่อได้รับแจ้ง ให้เปิดใช้ งาน .plist สำหรับ iOS จากนั้นคลิก ดาวน์โหลดไฟล์

  2. เพิ่มค่าเหล่านี้ไปยังวัตถุ Remote Config โดยใช้ setDefaults: ตัวอย่างต่อไปนี้ตั้งค่าเริ่มต้นในแอปจากไฟล์ plist:

    Swift

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    วัตถุประสงค์-C

    [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];

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

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

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

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

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

ดึงและเปิดใช้งานค่า

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

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

ตัวอย่างนี้ดึงค่าจากแบ็กเอนด์ Remote Config (ไม่ใช่ค่าที่แคชไว้) และเรียก activateWithCompletionHandler: เพื่อให้พร้อมใช้งานในแอป:

Swift

remoteConfig.fetch { (status, error) -> Void in
  if status == .success {
    print("Config fetched!")
    self.remoteConfig.activate { changed, error in
      // ...
    }
  } else {
    print("Config not fetched")
    print("Error: \(error?.localizedDescription ?? "No error available.")")
  }
  self.displayWelcome()
}

วัตถุประสงค์-C

[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
    if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
      [self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
        // ...
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
    [self displayWelcome];
}];

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

การควบคุมปริมาณ

หากแอปดึงข้อมูลหลายครั้งเกินไปในช่วงเวลาสั้นๆ การเรียกข้อมูลจะถูกควบคุมปริมาณ และ SDK จะส่งกลับ FIRRemoteConfigFetchStatusThrottled ก่อน SDK เวอร์ชัน 6.3.0 ขีดจำกัดคือ 5 คำขอดึงข้อมูลในหน้าต่าง 60 นาที (เวอร์ชันที่ใหม่กว่ามีขีดจำกัดที่อนุญาตมากกว่า)

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

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

  1. พารามิเตอร์ในการ fetch(long)
  2. พารามิเตอร์ใน FIRRemoteConfigSettings.MinimumFetchInterval
  3. ค่าเริ่มต้น 12 ชั่วโมง

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

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