תחום פונקציות Firebase

כיצד להשתמש בתחום מותאם אישית לפונקציות Firebase

מוכן, מוכן, אש!

שלום לך, טום כאן כותב! אם אתה משתמש נלהב ב- Firebase, אתה יודע עד כמה פשוט יכול להיות הטיפול בתיקון האחורי שלך. הודות לפונקציות Firebase, אני פשוט כותב את ההיגיון העסקי שלי כפונקציה פשוטה, פורס פונקציה ממש באמצעות ה- CLI ויכול להגיע אליה מהענן בכל מקום על פני כדור הארץ. ההתקנה עצמה כל כך פשוטה, שהפריסה לבדה אורכת רק כמה דקות לכל היותר. אך יש מקרה מיוחד עם פונקציות Firebase שעשוי להזדקק לעבודה נוספת - באמצעות דומיין מותאם אישית, ולא זה שמספק Firebase.

האתגר

אם אתה פשוט פורס פונקציות Firebase כמתואר, תתארח תחת תת-דומיין של גוגל, במיוחד תחת

cloudfunctions.net

למקרי שימוש פשוטים, זה בעיקר מה שאתה צריך - פשוט פרוס את הדבר והפוך אותו לזמין לצריכה. אך מקרי שימוש אחרים דורשים שניתן יהיה להשיג את ה- backend שלך תחת התחום שלך. לדוגמא זו, אשתמש בדומיין שלי flaming.codes.

ההתקנה

להלן התנאים המוקדמים, רק כדי לוודא:

  • הגדרת פרויקט Firebase
  • תחת אירוח, הגדרת את הדומיין המותאם אישית שלך; זהו תהליך פשוט, שבו אתה פשוט צריך לאחסן רשומת TXT אצל ספק האירוח שלך

התצורה

כדי לגרום לדומיין המותאם אישית שלך לעבוד לא רק עבור אפליקציית האינטרנט המתארחת שלך, אלא גם על הפונקציות שלך, יש לעדכן את firebase.json (הסבר לאחר המדגם):

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

הטריק היחיד לגרום לו לעבוד הוא עדכון מפתח האחסון, ולא הפונקציות, ב- firebase.json שלך. מה שאנחנו בעצם עושים זה לומר ל- Firebase שמאפליקציית האינטרנט המתארחת שלנו, יש להפנות את כל השיחות אל / api / ... לפונקציה הנקראת api. הדבר שלקח לי הכי הרבה זמן היה הפריט השני, שבו אני צריך במפורש להכריז על כל מסלול אחר מלבד ה- API שישמש כמסלול ברירת מחדל לאפליקציות אינטרנט.

באמצעות ההתקנה הבאה, פונקציית הענן הישנה

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

ולכן הופך להיות

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

שים לב שהסדר חשוב כאן, כללי השכתוב עוברים עיבוד מאלמנט ראשון עד אחרון, כך שבמקרה זה מלמעלה למטה, מבחינה ויזואלית. השימוש בתו כללי כדי למפות מחדש את כל הפונקציות שלך ממש לא מומלץ לשימוש כללי, מכיוון שהוא ישבור את אפליקציית האינטרנט שלך.

לעטוף

וכן, זה ממש לא קסם אבל יכול לעזור מאוד בעת שימוש בפונקציות Firebase במקרי שימוש מסוימים. ראינו כיצד לשכתב את פונקציות הענן שלך כחלק מהדומיין הרשום כבר, ולכן ביטול הדרישה לתת-דומיין חדש ומותאם אישית - אמנם זה אפשרי גם כן, אך מחוץ לתחום עבור הדרכה זו.

  • Tom