Eşzamanlı ve eş zamansız içerikler, taahhütler

Bir işlevin yaşam döngüsünü yöneterek şu problemi çözmesini sağlamak: gerekir. İşlevleri doğru bir şekilde sonlandırarak aşırı ücretlerin önüne geçebilirsiniz. işlevini kullanın. Ayrıca, hedeflerin işlevinizi çalıştıran Cloud Functions örneğinin kapatmadığından işleviniz sonlandırma durumuna veya durumuna başarıyla ulaşmadan önce kullanır.

İşlevlerinizin yaşam döngüsünü yönetmek için şu önerilen yaklaşımlardan yararlanın:

  • Eşzamansız işleme ("arka plan işlevleri" olarak da bilinir) gerçekleştiren işlevleri JavaScript taahhüt edin.
  • HTTP işlevlerini res.redirect(), res.send() veya res.end().
  • return; ifadesiyle birlikte eşzamanlı işlevleri sonlandırın.

JavaScript'in vaatleri ile eşzamansız kodları basitleştirin

Vaatler, eşzamansız kod için geri çağırmaların modern bir alternatifidir. Vaat bir işlemi ve döndürebileceği gelecekteki değeri temsil eder. Ayrıca şunları da yapmanıza olanak tanır: zaman uyumlu kodda dene/yakala yöntemine benzer şekilde hata yaymasını sağlar. Aşağıdaki konular hakkında daha fazla bilgi edinebilirsiniz: Firebase'de Firebase SDK'sındaki Blog ve vaatlerde bulunan MDN.

Vaatlerin işlevlerle çalışma şekli

Bir işlev için JavaScript taahhüdünü döndürdüğünüzde, Taahhüt verilene veya reddedilene kadar çalışmaya devam eder. Bu durumun, fonksiyonunun çalışmasını başarıyla tamamladığında, vaat edilen çözüm bulunmalıdır. Alıcı: bir hata belirtiyorsa vaat reddedilmelidir. Bu durumda tek yapmanız gereken istediğiniz hataları ele alın.

Aşağıdaki kod bir Firebase Realtime Database'i ref alıp değerini "world!". set sonucunu döndürdüğünüzde işlevinizin dizeyi veritabanına yazma gibi eş zamansız çalışma gerçekleşene kadar çalışmaya devam eder. tamamlandı:

// Always change the value of "/hello" to "world!"
exports.hello = functions.database.ref('/hello').onWrite(event => {
  // set() returns a promise. We keep the function alive by returning it.
  return event.data.ref.set('world!').then(() => {
    console.log('Write succeeded!');
  });
});

Bağlama dayalı örnekler

Cloud Functions kodumuzun büyük bir kısmı örnekler doğru işlevi sonlandırma örneklerini içerir. Çevik yaklaşımın tipik durumlar: