با Firebase Remote Config شروع کنید


شما می توانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و به روز رسانی مقادیر آنها در فضای ابری استفاده کنید و به شما امکان می دهد ظاهر و رفتار برنامه خود را بدون توزیع به روز رسانی برنامه تغییر دهید. این راهنما شما را از طریق مراحل شروع به کار راهنمایی می کند و نمونه کدی را ارائه می دهد که همگی برای شبیه سازی یا دانلود از مخزن firebase/quickstart-ios GitHub در دسترس هستند.

مرحله 1: پیکربندی از راه دور را به برنامه خود اضافه کنید

  1. اگر قبلاً این کار را نکرده اید ، Firebase را به پروژه اپل خود اضافه کنید .

  2. برای پیکربندی از راه دور ، Google Analytics برای هدف قرار دادن مشروط نمونه های برنامه به خصوصیات کاربر و مخاطبان مورد نیاز است. اطمینان حاصل کنید که Google Analytics را در پروژه خود فعال کرده اید.

  3. همانطور که در مثال زیر نشان داده شده است ، شیء پیکربندی Remote Singleton را ایجاد کنید:

    سریع

    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: مقادیر پارامتر پیش فرض درون برنامه را تنظیم کنید

شما می توانید مقادیر پارامتر پیش فرض درون برنامه را در شیء پیکربندی از راه دور تنظیم کنید ، به طوری که برنامه شما قبل از اتصال به پس زمینه پیکربندی از راه دور ، همانطور که در نظر گرفته شده است رفتار می کند ، و در صورت تنظیم هیچ یک در قسمت پس زمینه ، مقادیر پیش فرض در دسترس است.

  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 ، منوی را باز کنید و مقادیر Dealnd Dealue را انتخاب کنید.

    2. در صورت درخواست ، .plist را برای iOS فعال کنید ، سپس روی فایل بارگیری کلیک کنید.

  2. این مقادیر را با استفاده از setDefaults: . مثال زیر مقادیر پیش فرض درون برنامه را از یک پرونده plist تنظیم می کند:

    سریع

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    هدف-C

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

مرحله 3: مقادیر پارامتر را برای استفاده در برنامه خود دریافت کنید

اکنون می توانید مقادیر پارامتر را از شیء پیکربندی از راه دور دریافت کنید. اگر بعداً مقادیر را در پشتوانه پیکربندی از راه دور تنظیم کنید ، آنها را واکشی کنید و سپس آنها را فعال کنید ، این مقادیر در دسترس برنامه شما هستند. در غیر این صورت ، مقادیر پارامتر درون برنامه را با استفاده از setDefaults: . برای به دست آوردن این مقادیر ، با روش configValueForKey: Method ، با ارائه کلید پارامتر به عنوان یک آرگومان تماس بگیرید.

مرحله 4: مقادیر پارامتر را تنظیم کنید

با استفاده از کنسول Firebase یا API های Backend Config از راه دور ، می توانید مقادیر پیش فرض جدید Backend را ایجاد کنید که با توجه به منطق شرطی مورد نظر یا هدف قرار دادن کاربر ، مقادیر درون برنامه را نادیده می گیرد. این بخش شما را از طریق مراحل کنسول Firebase برای ایجاد این مقادیر طی می کند.

  1. در کنسول Firebase ، پروژه خود را باز کنید.
  2. برای مشاهده داشبورد پیکربندی Remote Config Config Config Confort را از منو انتخاب کنید.
  3. پارامترها را با همان نام هایی با پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر ، می توانید یک مقدار پیش فرض (که در نهایت مقدار پیش فرض درون برنامه را نادیده می گیرد) تنظیم کنید و می توانید مقادیر شرطی را نیز تنظیم کنید. برای کسب اطلاعات بیشتر ، به پارامترها و شرایط پیکربندی از راه دور مراجعه کنید.

مرحله 5: مقادیر را واکشی و فعال کنید

برای واکشی مقادیر پارامتر از پیکربندی از راه دور ، با fetchWithCompletionHandler: یا fetchWithExpirationDuration:completionHandler: METHORE. هر مقداری که در پس زمینه تنظیم کرده اید ، در شیء پیکربندی از راه دور قرار گرفته و ذخیره می شوند.

برای مواردی که می خواهید مقادیر را در یک تماس واکشی و فعال کنید ، از fetchAndActivateWithCompletionHandler: .

این مثال مقادیر را از پس زمینه پیکربندی از راه دور (نه مقادیر ذخیره شده) دریافت می کند و تماس های activateWithCompletionHandler: برای اینکه آنها را در دسترس برنامه قرار دهید:

سریع

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);
    }
}];

از آنجا که این مقادیر پارامتر به روز شده بر رفتار و ظاهر برنامه شما تأثیر می گذارد ، باید مقادیر واکشی را در زمانی فعال کنید که تجربه ای صاف را برای کاربر شما تضمین می کند ، مانند دفعه بعد که کاربر برنامه شما را باز می کند. برای اطلاعات بیشتر و مثال ، به استراتژی های بارگیری پیکربندی از راه دور مراجعه کنید.

مرحله ششم: به روزرسانی ها را در زمان واقعی گوش دهید

پس از واکشی مقادیر پارامتر ، می توانید از پیکربندی Remote Remote Time Time برای گوش دادن به روزرسانی از Remote Config Backend استفاده کنید. سیگنال های پیکربندی از راه دور در زمان واقعی هنگامی که به روزرسانی ها در دسترس هستند و به طور خودکار تغییرات را پس از انتشار نسخه جدید پیکربندی از راه دور دریافت می کنند.

به روزرسانی های زمان واقعی توسط Firebase SDK برای Apple Platforms V10.7.0+ و بالاتر پشتیبانی می شود.

  1. در برنامه خود با addOnConfigUpdateListener تماس بگیرید تا گوش دادن به روزرسانی ها را شروع کنید و به طور خودکار مقادیر پارامتر جدید یا به روز شده را بدست آورید. مثال زیر برای به روزرسانی ها گوش می دهد و هنگامی که activateWithCompletionHandler فراخوانی می شود ، از مقادیر تازه دریافت شده برای نمایش یک پیام خوش آمدید به روز شده استفاده می کند.

    سریع

    remoteConfig.addOnConfigUpdateListener { configUpdate, error in
      guard let configUpdate, error == nil else {
        print("Error listening for config updates: \(error)")
      }
    
      print("Updated keys: \(configUpdate.updatedKeys)")
    
      self.remoteConfig.activate { changed, error in
        guard error == nil else { return self.displayError(error) }
        DispatchQueue.main.async {
          self.displayWelcome()
        }
      }
    }
    

    هدف-C

    __weak __typeof__(self) weakSelf = self;
    [self.remoteConfig addOnConfigUpdateListener:^(FIRRemoteConfigUpdate * _Nonnull configUpdate, NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"Error listening for config updates %@", error.localizedDescription);
      } else {
        NSLog(@"Updated keys: %@", configUpdate.updatedKeys);
    
        __typeof__(self) strongSelf = weakSelf;
        [strongSelf.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
          if (error != nil) {
            NSLog(@"Activate error %@", error.localizedDescription);
          }
    
          dispatch_async(dispatch_get_main_queue(), ^{
            [strongSelf displayWelcome];
          });
        }];
      }
    }];
    
  2. دفعه بعد که نسخه جدیدی از پیکربندی از راه دور خود را منتشر می کنید ، دستگاه هایی که برنامه شما را اجرا می کنند و به تغییرات گوش می دهند ، با کنترل کننده تکمیل تماس می گیرند.

گاز دادن

اگر یک برنامه در یک دوره زمانی کوتاه بارها و بارها واگذار شود ، تماس های واکشی از بین می روند و SDK FIRRemoteConfigFetchStatusThrottled را برمی گرداند. قبل از نسخه SDK 6.3.0 ، حد 5 درخواست واکشی در یک پنجره 60 دقیقه ای بود (نسخه های جدیدتر محدودیت های مجاز بیشتری دارند).

در حین توسعه برنامه ، ممکن است بخواهید بیشتر اوقات به شما واکشی کنید تا حافظه نهان را به طور مکرر (چندین بار در ساعت) تازه کنید تا به شما اجازه دهد تا هنگام تهیه و آزمایش برنامه خود به سرعت تکرار کنید. به روزرسانی های پیکربندی Remote Remote Time Time به طور خودکار هنگام بروزرسانی پیکربندی روی سرور ، حافظه نهان را دور می زنند. برای قرار دادن تکرار سریع در یک پروژه با توسعه دهندگان بیشمار ، می توانید به طور موقت یک ویژگی FIRRemoteConfigSettings را با حداقل فاصله دریافتی کم ( MinimumFetchInterval ) در برنامه خود اضافه کنید.

فاصله قبل از تولید پیش فرض و توصیه شده برای پیکربندی از راه دور 12 ساعت است ، به این معنی که پیکربندی ها بیش از یک بار در یک پنجره 12 ساعته ، بدون در نظر گرفتن چند تماس واکشی در واقع ، از پس زمینه خارج نمی شوند. به طور خاص ، حداقل فاصله واکشی در این ترتیب زیر تعیین می شود:

  1. پارامتر در fetch(long)
  2. پارامتر در FIRRemoteConfigSettings.MinimumFetchInterval
  3. مقدار پیش فرض 12 ساعت

مراحل بعدی

اگر قبلاً این کار را نکرده اید ، موارد استفاده از راه دور از پیکربندی را کاوش کنید و به برخی از مفاهیم کلیدی و مستندات استراتژی های پیشرفته ، از جمله: