المزامنة وعدم المزامنة والحصول على وعود

من المهم إدارة دورة حياة الدالة لضمان حلها بشكل صحيح. يمكنك تجنُّب الرسوم الزائدة من خلال إنهاء الوظائف بشكل صحيح. من الدوال التي تعمل لفترة طويلة جدًا أو المتكررة إلى ما لا نهاية. يمكنك أيضًا التأكد من عدم إيقاف المثيل Cloud Functions الذي يُشغِّل الدالة قبل أن تصل الدالة بنجاح إلى حالة أو حالة الإنهاء.

استخدم هذه الأساليب الموصى بها لإدارة دورة حياة الدوال:

  • يمكنك حل الدوال التي تنفِّذ معالجة غير متزامنة (المعروفة أيضًا باسم "الدوال الخلفية") عن طريق عرض JavaScript .
  • إنهاء دوال HTTP باستخدام res.redirect() أو res.send() أو res.end()
  • إنهاء دالة متزامنة باستخدام عبارة return;

تبسيط الرمز غير المتزامن باستخدام وعود JavaScript

والوعود هي بديل حديث لاستدعاءات الرموز البرمجية غير المتزامنة. وعد العملية والقيمة المستقبلية التي قد تنتجها. كما يتيح لك نشر أخطاء مشابهة للمحاولة/الالتقاط في رمز متزامن. يمكنك القراءة عن الإمكانات المتاحة في حزمة تطوير البرامج (SDK) لمنصّة Firebase على منصة Firebase المدوّنة، ويقدم وعودًا بشكل عام بشأن MDN:

كيفية عمل الوعود مع الدوال

عند إرجاع وعود JavaScript إلى دالة، فإن هذه الوظيفة تستمر في العمل إلى أن يتم التعامل بشكل نهائي مع الوعد أو رفضه. للإشارة إلى أن أن تكون قد أكملت عملها بنجاح، فيجب حل الوعد. إلى تشير إلى خطأ، فيجب رفض الوعد. هذا يعني أنك تحتاج فقط إلى التعامل مع الأخطاء التي تريدها.

يأخذ الرمز التالي ref Firebase Realtime Database ويضبط قيمته على "world!" من خلال عرض نتيجة set، تضمن الدالة الاستمرار في التنفيذ حتى ينتهي العمل غير المتزامن لكتابة السلسلة في قاعدة البيانات مكتمل تمامًا:

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

أمثلة ضمن السياق

معظم رموز Cloud Functions عيّنات أمثلة على إنهاء الوظيفة بشكل صحيح. فيما يلي بعض الأشياء التي توضح في الحالات النموذجية: