Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

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


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

ขั้นตอนที่ 1: เพิ่ม 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;

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

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

ขั้นตอนที่ 2: ตั้งค่าพารามิเตอร์เริ่มต้นในแอป

คุณสามารถตั้งค่าพารามิเตอร์เริ่มต้นในแอปในออบเจ็กต์ 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"];

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

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

ขั้นตอนที่ 4: ตั้งค่าพารามิเตอร์

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

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

ขั้นตอนที่ 5: ดึงและเปิดใช้งานค่า

ในการดึงค่าพารามิเตอร์จาก 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) {
        if (error != nil) {
          NSLog(@"Activate error: %@", error.localizedDescription);
        } else {
          dispatch_async(dispatch_get_main_queue(), ^{
            [self displayWelcome];
          });
        }
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
}];

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

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

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

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

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

  1. พารามิเตอร์ในการ fetch(long)
  2. The parameter in FIRRemoteConfigSettings.MinimumFetchInterval
  3. The default value of 12 hours

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

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: