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

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

בחר פרויקט Firebase

חבילת האמולטור המקומית של Firebase מחקה מוצרים לפרויקט Firebase יחיד.

כדי לבחור את הפרויקט להשתמש, לפני שתתחיל אמולטורים, ב CLI בטווח firebase use בספרייה עובד שלך. לחלופין, אתה יכול להעביר את --project דגל לכל פקודה אמולטור.

המקומי Emulator Suite תומך אמולציה של פרויקטים אמיתיים Firebase ופרויקטי ההדגמה.

סוג הפרויקט מאפיינים השתמש עם אמולטורים
אמיתי

פרויקט Firebase אמיתי הוא פרויקט שיצרת והגדרת (סביר להניח דרך מסוף Firebase).

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

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

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

הַדגָמָה

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

פרויקט תעודות זהות לפרויקטי הדגמה יש demo- הקידומת.

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

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

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

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

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

אם פעילויות אבטיפוס הבדיקה כרוכה פונקציות 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 לפלטפורמה שלך.

אילו כלים נוספים לבדיקת פונקציות ענן קיימים?

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

  • מעטפת הענן פונקציות, המאפשרת פונקציות אינטראקטיביות וחזרתיות, דוגמת טיפוס ופיתוח. המעטפת משתמשת באמולטור פונקציות הענן עם ממשק בסגנון REPL לפיתוח. לא ניתנת אינטגרציה עם אמולטורי מסד הנתונים של Cloud Firestore או בזמן אמת. באמצעות המעטפת אתה מלגלג על נתונים ומבצע שיחות פונקציות כדי לדמות אינטראקציה עם מוצרים ש- Suite Emulator Suite אינו תומך כרגע: Cloud Storage, Pub/Sub, Analytics, Remote Config, Storage, Auth, and Crashlytics.
  • Firebase Test SDK עבור פונקציות ענן, Node.js עם מסגרת מוקה לפיתוח פונקציות. למעשה, SDK Test Functions Test מספק אוטומציה על גבי מעטפת פונקציות הענן.

אתה יכול למצוא עוד על פונקציות הענן להפגיז ענן פונקציות המבחן SDK על פונקציות מבחן אינטראקטיבי ו בדיקות יחידות של פונקציות ענן .

מה הלאה?