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

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

  • פונקציות HTTPS
  • פונקציות הניתנות להתקשרות
  • פונקציות רקע מופעלות מאימות, מסד נתונים בזמן אמת, ענן Firestore ו- Cloud Pub / Sub.

באפשרותך להפעיל פונקציות באופן מקומי כדי לבדוק אותן לפני פריסתן לייצור.

התקן את ה- CLI של Firebase

כדי להשתמש באמולטור פונקציות הענן, התקן תחילה את ה- Firebase CLI:

npm install -g firebase-tools

על מנת להשתמש באמולטור המקומי, פונקציות הענן שלך חייבות להיות תלויות ב:

  • firebase-admin גרסה 8.0.0 ומעלה.
  • firebase-functions גרסה 3.0.0 ומעלה.

הגדר אישורי מנהל מערכת (אופציונלי)

אם אתה רוצה הבדיקות התפקודיות שלך לתקשר עם Google APIs או APIs Firebase האחר באמצעות SDK של ניהול Firebase , ייתכן שתצטרך להגדיר את אישורי מנהל.

  • ענן Firestore ואת זמן אמת טריגרים Database יש כבר אישורים מספקים, ואינם דורשים התקנה נוספת.
  • כל ממשקי ה- API האחרים, כולל ממשקי API של Firebase כמו אימות ו- FCM או ממשקי API של Google כגון תרגום ענן או דיבור בענן, דורשים את שלבי ההתקנה המתוארים בסעיף זה. זה חל בין אם אתה משתמש בפונקציות פגז או firebase emulators:start .

כדי להגדיר אישורי מנהל עבור פונקציות מדומות:

  1. פתח את חלונית שירות החשבונות של קונסולת הענן של Google.
  2. ודא כי חשבון השירות מחדל App Engine נבחר, והשתמש בתפריט האפשרויות על הזכות לבחור יצירת מפתח.
  3. כשתתבקש, בחר JSON עבור סוג המפתח, ולחץ על צור.
  4. הגדר את אישורי ברירת המחדל של Google כך שהם יצביעו על המפתח שהורדת:

    יוניקס

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
    

    חלונות

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
    

לאחר השלמת השלבים הללו, הבדיקות התפקודיות שלך יכולות לגשת APIs Firebase ו- Google באמצעות SDK של הניהול . לדוגמה, כאשר בודקים טריגר אימות, הפונקציה לחיקוי יכול להתקשר admin.auth().getUserByEmail(email) .

הגדרת תצורת פונקציות (אופציונלי)

אם אתה משתמש פונקציות מותאמות אישית משתנה תצורה, ראשון להריץ את פקוד כדי לקבל config האישית שלך (זה בהנהלה בתוך functions הספרייה) בסביבה הקרובה:

firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json

הפעל את חבילת האמולטור

כדי להפעיל את פונקציות ענן אמולטור, להשתמש emulators:start הפקודה:

firebase emulators:start

emulators:start פקוד תתחיל אמולטורים עבור פונקציות ענן, ענן Firestore, מסד זמן אמת, ועל Firebase אירוח על בסיס המוצרים שיש לך אותחל בפרויקט המקומי בעזרת firebase init . אם אתה רוצה להתחיל אמולטור מסוים, השתמש --only הדגל:

firebase emulators:start --only functions

אם אתה רוצה להפעיל חבילת בדיקות או סקריפט הבדיקה לאחר אמולטורים החלו, להשתמש emulators:exec הפקודה:

firebase emulators:exec "./my-test.sh"

מכשיר את האפליקציה שלך לדבר עם האמולטורים

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

מכשיר את האפליקציה שלך לפונקציות הניתנות להתקשרות

אם פעילויות אבטיפוס הבדיקה כרוכה פונקציות backend callable , אינטראקציה להגדיר עם פונקציות ענן עבור אמולטור Firebase ככה:

דְמוּי אָדָם
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseFunctions functions = FirebaseFunctions.getInstance();
        functions.useEmulator("10.0.2.2", 5001);
iOS - סוויפט
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

אינטרנט v8

firebase.functions().useEmulator("localhost", 5001);

אינטרנט v9

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

מכשיר את האפליקציה שלך להדמיית פונקציות HTTPS

כל פונקציית HTTPS בקוד שלך תוגש מהאמולטור המקומי באמצעות פורמט ה- URL הבא:

http:// $HOST : $PORT / $PROJECT / $REGION / $NAME

לדוגמא פשוט helloWorld פונקציה עם יציאת מארח מחדל והאזור תוגש ב:

https://localhost:5001/ $PROJECT /us-central1/helloWorld

מכשיר את האפליקציה שלך להדמיית פונקציות המופעלות ברקע

אמולטור פונקציות הענן תומך בפונקציות המופעלות ברקע מהמקורות הבאים:

  • אמולטור מסד נתונים בזמן אמת
  • אמולטור Firestore בענן
  • אמולטור אימות
  • אמולטור פאב / משנה

כדי להפעיל אירועי רקע, חבר את האפליקציה שלך או בקוד קוד לאמולטורים באמצעות SDK לפלטפורמה שלך.

אינטראקציות עם שירותים אחרים

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

ענן Firestore

אם יש לך פונקציות ענן המשתמשות ב- Firebase Admin SDK כדי לכתוב ל- Cloud Firestore, כתיבות אלה יישלחו לאמולטור Cloud Firestore אם הוא פועל. אם כתובות אלה מופעלות פונקציות ענן נוספות, הן יופעלו באמולטור פונקציות הענן.

אירוח Firebase

אם אתה משתמש פונקציות ענן ליצור תוכן דינמי עבור Firebase אירוח , firebase emulators:start משתמשת פונקציות HTTP המקומיות לשיקוף אירוח.

רישום

האמולטור מזרים יומנים מהפונקציות שלך לחלון המסוף שבו הם פועלים. הוא מציג את כל הפלט console.log() , console.info() , console.error() , ולאחר console.warn() דוחות בתוך פונקציות שלך.

הצעדים הבאים

לקבלת דוגמא מלאה באמצעות חבילת אמולטור Firebase, לראות את מדגם QuickStart ובדיקה .