Buka konsol

Memulai Firebase Remote Config di iOS

Anda dapat menggunakan Firebase Remote Config untuk menetapkan parameter dalam aplikasi dan mengupdate value-nya di cloud, agar Anda dapat memodifikasi tampilan dan perilaku aplikasi tanpa mendistribusikan update aplikasi.

Panduan ini akan menuntun Anda menjalankan langkah-langkah untuk memulai, serta menyediakan beberapa kode sampel yang semuanya dapat di-clone atau didownload dari repositori GitHub firebase/quickstart-ios.

Menambahkan Remote Config ke aplikasi

  1. Instal Firebase SDK untuk iOS.

  2. Buat objek Remote Config tunggal, seperti yang ditunjukkan pada contoh berikut:

    Swift

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

    Objective-C

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

Objek ini digunakan untuk menyimpan parameter value default dalam aplikasi, mengambil parameter value terbaru dari backend Remote Config, dan mengontrol kapan nilai yang diambil akan tersedia untuk aplikasi Anda.

Selama pengembangan, sebaiknya tetapkan interval pengambilan minimum yang relatif rendah. Baca artikel mengenai Throttling untuk mengetahui informasi selengkapnya.

Menetapkan parameter value default dalam aplikasi

Anda bisa menetapkan parameter value default dalam aplikasi pada objek Remote Config agar aplikasi Anda berperilaku seperti yang diharapkan sebelum terhubung ke backend Remote Config, dan agar parameter value default tersebut tersedia jika tidak ada nilai yang ditetapkan pada backend.

  1. Tentukan sekumpulan nama parameter dan parameter value default menggunakan objek NSDictionary atau file plist.
  2. Tambahkan nilai ini ke objek Remote Config menggunakan setDefaults:. Contoh berikut menetapkan nilai default dalam aplikasi dari file plist:

Swift

remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

Objective-C

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

Mendapatkan parameter value yang akan digunakan dalam aplikasi Anda

Sekarang Anda bisa mendapatkan parameter value dari objek Remote Config. Jika Anda kemudian menetapkan nilai pada backend Remote Config, mengambilnya, lalu mengaktifkannya, nilai tersebut akan tersedia untuk aplikasi Anda. Jika tidak, Anda akan mendapatkan parameter value dalam aplikasi yang terkonfigurasi menggunakan setDefaults:. Untuk mendapatkan nilai ini, panggil metode configValueForKey: yang menyediakan kunci parameter sebagai argumen.

Menetapkan parameter value

Dengan menggunakan Firebase console atau REST API Remote Config, Anda dapat membuat nilai default backend baru yang menggantikan nilai dalam aplikasi sesuai dengan logika bersyarat atau penargetan pengguna yang diinginkan. Bagian ini akan menuntun Anda menjalankan langkah-langkah di Firebase console untuk membuat nilai tersebut.

  1. Buka project Anda di Firebase console.
  2. Pilih Remote Config dari menu untuk melihat dasbor Remote Config.
  3. Tetapkan parameter dengan nama yang sama dengan parameter yang Anda tetapkan dalam aplikasi. Untuk setiap parameter, Anda dapat menetapkan nilai default (yang akan menggantikan nilai default dalam aplikasi) dan menetapkan nilai kondisional. Untuk mempelajari lebih lanjut, baca artikel Parameter dan Ketentuan Remote Config.

Mengambil dan mengaktifkan nilai

  1. Untuk mengambil parameter value dari layanan Remote Config, panggil metode fetchWithCompletionHandler: atau fetchWithExpirationDuration:completionHandler:. Setiap nilai yang Anda tetapkan pada backend akan diambil dan disimpan dalam cache di objek Remote Config.
  2. Agar parameter value yang diambil tersedia untuk aplikasi Anda, panggil metode activateFetched.

Jika Anda ingin mengambil dan mengaktifkan nilai dalam satu panggilan, gunakan fetchAndActivateWithCompletionHandler:.

Contoh ini mengambil nilai dari backend Remote Config (bukan nilai yang disimpan dalam cache) dan memanggil activateWithCompletionHandler: agar tersedia di aplikasi:

Swift

// TimeInterval is set to expirationDuration here, indicating the next fetch request will use
// data fetched from the Remote Config service, rather than cached parameter values, if cached
// parameter values are more than expirationDuration seconds old. See Best Practices in the
// README for more information.
remoteConfig.fetch(withExpirationDuration: TimeInterval(expirationDuration)) { (status, error) -> Void in
  if status == .success {
    print("Config fetched!")
    self.remoteConfig.activate(completionHandler: { (error) in
      // ...
    })
  } else {
    print("Config not fetched")
    print("Error: \(error?.localizedDescription ?? "No error available.")")
  }
  self.displayWelcome()
}

Objective-C

// TimeInterval is set to expirationDuration here, indicating the next fetch request will use
// data fetched from the Remote Config service, rather than cached parameter values, if cached
// parameter values are more than expirationDuration seconds old. See Best Practices in the
// README for more information.
[self.remoteConfig fetchWithExpirationDuration:expirationDuration completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
    if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
      [self.remoteConfig activateWithCompletionHandler:^(NSError * _Nullable error) {
        // ...
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
    [self displayWelcome];
}];

Karena parameter value yang telah diupdate ini memengaruhi perilaku dan tampilan aplikasi, Anda harus mengaktifkan nilai yang diambil pada saat yang tepat guna memastikan pengalaman yang lancar bagi pengguna, misalnya ketika pengguna membuka aplikasi Anda. Baca Strategi pemuatan Remote Config untuk mengetahui informasi dan contoh selengkapnya.

Throttling

Jika aplikasi terlalu sering melakukan pengambilan dalam jangka waktu yang singkat, panggilan pengambilan akan dibatasi dan SDK akan menampilkan FIRRemoteConfigFetchStatusThrottled. Sebelum SDK versi 6.3.0, batasnya adalah 5 permintaan pengambilan dalam jangka waktu 60 menit (versi yang lebih baru memiliki batas yang lebih terbuka).

Selama pengembangan aplikasi, sebaiknya Anda sering merefresh cache (beberapa kali per jam) agar dapat melakukan iterasi dengan cepat ketika mengembangkan dan menguji aplikasi. Untuk mengakomodasi iterasi yang cepat pada project yang beranggotakan banyak developer, Anda dapat menambahkan properti FIRRemoteConfigSettings dengan interval pengambilan minimum yang rendah (MinimumFetchInterval) ke dalam aplikasi Anda untuk sementara.

Interval pengambilan produksi default dan yang disarankan untuk Remote Config adalah 12 jam. Artinya, konfigurasi tidak akan diambil dari backend lebih dari sekali dalam jangka waktu 12 jam, terlepas dari berapa banyak panggilan pengambilan yang sebenarnya dibuat. Secara khusus, interval pengambilan minimum ditentukan dalam urutan sebagai berikut:

  1. Parameter di fetch(long)
  2. Parameter di FIRRemoteConfigSettings.MinimumFetchInterval
  3. Value default 12 jam

Langkah berikutnya

Pelajari kasus penggunaan Remote Config jika Anda belum melakukannya, dan baca beberapa konsep utama serta dokumentasi strategi lanjutan, termasuk di antaranya: