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

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

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

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

התקן את Firebase CLI

כדי להשתמש באמולטור פונקציות הענן, התקן תחילה את 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")

גרסת אינטרנט 9

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

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

גרסת אינטרנט 8

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

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

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

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

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

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

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

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

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

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

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

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

Cloud Firestore

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

אירוח Firebase

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

רישום

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

הצעדים הבאים

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