Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Sinkronkan, asinkron, dan janji

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Sangat penting untuk mengelola siklus hidup suatu fungsi untuk memastikan bahwa itu diselesaikan dengan benar. Dengan menghentikan fungsi dengan benar, Anda dapat menghindari biaya berlebihan dari fungsi yang berjalan terlalu lama atau berulang tanpa batas. Selain itu, Anda dapat memastikan bahwa instance Cloud Functions yang menjalankan fungsi Anda tidak dimatikan sebelum fungsi Anda berhasil mencapai kondisi atau status penghentiannya.

Gunakan pendekatan yang direkomendasikan ini untuk mengelola siklus hidup fungsi Anda:

  • Selesaikan fungsi yang melakukan pemrosesan asinkron (juga dikenal sebagai "fungsi latar belakang") dengan mengembalikan janji JavaScript .
  • Hentikan fungsi HTTP dengan res.redirect() , res.send() , atau res.end() .
  • Hentikan fungsi sinkron dengan return; penyataan.

Sederhanakan kode asinkron dengan janji JavaScript

Promise adalah alternatif modern untuk callback untuk kode asinkron. Janji mewakili operasi dan nilai masa depan yang mungkin dikembalikan. Ini juga memungkinkan Anda menyebarkan kesalahan yang mirip dengan mencoba/menangkap dalam kode sinkron. Anda dapat membaca tentang janji di SDK Firebase di The Firebase Blog , dan janji secara umum di MDN .

Bagaimana janji bekerja dengan fungsi

Saat Anda mengembalikan janji JavaScript ke suatu fungsi, fungsi itu terus berjalan hingga janji diselesaikan atau ditolak. Untuk menunjukkan bahwa suatu fungsi telah menyelesaikan pekerjaannya dengan sukses, janji harus diselesaikan. Untuk menunjukkan kesalahan, janji harus ditolak. Ini berarti Anda hanya perlu menangani kesalahan yang Anda inginkan.

Kode berikut mengambil referensi ref Realtime Database dan menetapkan nilainya ke "world!" . Dengan mengembalikan hasil set , fungsi Anda dijamin tetap berjalan hingga pekerjaan asinkron menulis string ke database selesai sepenuhnya:

// 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!');
  });
});

Contoh dalam konteks

Sebagian besar contoh kode Cloud Functions kami menyertakan contoh penghentian fungsi yang tepat. Berikut adalah beberapa yang menunjukkan kasus khas: