مجال Firebase Functions

كيفية استخدام مجال مخصص لوظائف Firebase

جاهز ، اضبط ، أطلق!

مرحبًا ، توم هنا يكتب! إذا كنت مستخدمًا متعطشًا لـ Firebase ، فأنت تعلم مدى سهولة التعامل مع الواجهة الخلفية الخالية من الخلفية في الواقع. بفضل وظائف Firebase ، أكتب فقط منطق عملي كدالة بسيطة ، ونشر هذه الوظيفة بالذات عبر CLI ويمكنني الوصول إليها من السحابة في كل مكان على هذا الكوكب. الإعداد في حد ذاته بسيط للغاية ، بحيث أن النشر وحده لا يستغرق سوى دقيقتين من الوقت كحد أقصى. ولكن هناك حالة خاصة مع وظائف Firebase قد تحتاج إلى مزيد من العمل - باستخدام مجال مخصص ، وليس النطاق الذي يوفره Firebase.

التحدي

إذا قمت للتو بنشر وظائف Firebase كما هو موضح ، فستحصل على مضيف ضمن نطاق فرعي من Google ، وتحديداً ضمن

cloudfunctions.net

لحالات الاستخدام البسيطة ، هذا هو ما تحتاجه في الغالب - ما عليك سوى نشر الشيء وإتاحته للاستهلاك. لكن حالات الاستخدام الأخرى تتطلب إمكانية الوصول إلى الواجهة الخلفية ضمن نطاقك. في هذا المثال ، سأستخدم أكواد flaming.codes الخاصة بنطاقي.

وانشاء

فيما يلي المتطلبات الأساسية ، فقط للتأكد:

  • قمت بإعداد مشروع Firebase
  • ضمن الاستضافة ، قمت بإعداد المجال المخصص الخاص بك ؛ هذه عملية مباشرة ، حيث عليك فقط تخزين سجل TXT لدى مزود الاستضافة الخاص بك

ملف التكوين

لجعل المجال المخصص الخاص بك لا يعمل فقط مع تطبيق الويب المستضاف الخاص بك ولكن وظائفك أيضًا ، يجب تحديث firebase.json (الشرح بعد النموذج):

{
  "functions": {
    ...
  },
  "hosting": {
    ...,
    "rewrites": [
      {
        "source": "/api/**",
        "function": "api"
      },
      {
        "source": "!/api/**",
        "destination": "/index.html"
      }
    ]
  },
  ...
}

الحيلة الوحيدة لإنجاحها هي تحديث مفتاح الاستضافة ، وليس الوظائف ، في firebase.json. ما نقوم به أساسًا هو إخبار Firebase أنه من تطبيق الويب المستضاف لدينا ، يجب إعادة توجيه جميع المكالمات إلى / api / ... إلى الوظيفة التي تسمى api. الشيء الذي استغرق مني الأطول هو العنصر الثاني ، حيث يتعين عليّ صراحةً أن أعلن عن كل مسار آخر غير واجهة برمجة التطبيقات ليتم التعامل معه كمسار افتراضي لتطبيق الويب.

باستخدام الإعداد التالي ، وظيفة السحابة القديمة

https://uscentral1-flaming-codes.cloudfunctions.net/api

لذلك يصبح

https: //flaming.codes/api / ...

لاحظ أن الترتيب مهم هنا ، تتم معالجة قواعد إعادة الكتابة من العنصر الأول إلى العنصر الأخير ، لذلك في هذه الحالة من الأعلى إلى الأسفل ، من الناحية المرئية. لا يُنصح باستخدام حرف بدل لإعادة تعيين جميع وظائفك للاستخدام العام ، حيث قد يؤدي ذلك إلى تعطيل تطبيق الويب الخاص بك.

يتم إحتوائه

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

  • Tom

الاقتراحات

ذات صلة

ملحق

اللغات