Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

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

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

התקן את Firebase CLI

כדי להשתמש באמולטור Cloud Functions, התקן תחילה את 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 כגון Authentication ו-FCM או ממשקי API של Google כגון Cloud Translation או Cloud Speech, דורשים את שלבי ההגדרה המתוארים בסעיף זה. זה חל בין אם אתה משתמש בפונקציות פגז או 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);
מָהִיר
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 Functions תומך בפונקציות המופעלות על רקע מהמקורות הבאים:

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

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

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

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

Cloud Firestore

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

אירוח ב-Firebase

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

רישום

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

הצעדים הבאים

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