欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

Uzak Yapılandırma tetikleyicileri

Yeni bir yapılandırma sürümünün yayınlanması veya eski bir sürüme geri dönüş dahil olmak üzere Firebase Remote Config olaylarına yanıt olarak bir işlevi tetikleyebilirsiniz. Bu kılavuz, iki şablon sürümünün farklılığını gerçekleştiren bir Remote Config arka plan işlevinin nasıl oluşturulacağını açıklar.

Remote Config işlevini tetikleyin

Remote Config işlevini tetiklemek için functions.remoteConfig tarafından sağlanan onUpdate işleyicisini kullanın. onUpdate tarafından döndürülen TemplateVersion nesnesi, güncellemenin sürüm numarası ve zamanı gibi bir şablon güncellemesi için anahtar meta veri alanlarını içerir. Ayrıca, güncellemeyi yapan kullanıcının e-postasını ad ve varsa bir resimle birlikte alabilirsiniz.

Burada, güncellenen her sürümün ve değiştirdiği sürümün bir farkını döndüren bir Remote Config işlevi örneği verilmiştir. İşlev, şablon nesnesinin versionNumber alanını inceler ve mevcut (yeni güncellenen) sürümü, bir alt sürümle birlikte alır:

exports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata => {
  return admin.credential.applicationDefault().getAccessToken()
    .then(accessTokenObj => {
      return accessTokenObj.access_token;
    })
    .then(accessToken => {
      const currentVersion = versionMetadata.versionNumber;
      const templatePromises = [];
      templatePromises.push(getTemplate(currentVersion, accessToken));
      templatePromises.push(getTemplate(currentVersion - 1, accessToken));

      return Promise.all(templatePromises);
    })
    .then(results => {
      const currentTemplate = results[0];
      const previousTemplate = results[1];

      const diff = jsonDiff.diffString(previousTemplate, currentTemplate);

      functions.logger.log(diff);

      return null;
    }).catch(error => {
      functions.logger.error(error);
      return null;
    });
});

Bu örnek, farkı oluşturmak ve şablon nesnesini almak için isteği oluşturmak için json-diff ve request-promise modüllerini kullanır. Remote Config istemci mantığını ve Firebase Cloud Messaging'i içeren bir örnek için bkz. Remote Config güncellemelerini gerçek zamanlı olarak yayma .