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

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

בחר פרויקט Firebase

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

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

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

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

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

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

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

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

הַדגָמָה

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

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

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

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

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

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

Android, iOS ו- Web SDKs

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

דְמוּי אָדָם
FirebaseStorage.getInstance().useEmulator('10.0.2.2', 9199);
iOS - סוויפט
Storage.storage().useEmulator(withHost:"localhost", port:9199)
אינטרנט v8
var storage = firebase.storage();
storage.useEmulator("localhost", 9199);
Web v9 (ביטא)
import { getStorage, useStorageEmulator } from "firebase/storage";

const storage = getStorage();
useStorageEmulator(storage, "localhost", 9199);

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

מנהלי SDK

ערכת פיתוח תוכנת Admin Firebase אוטומטית להתחבר אמולטור לאחסון בענן כאשר FIREBASE_STORAGE_EMULATOR_HOST משתנה הסביבה מוגדרת:

export FIREBASE_STORAGE_EMULATOR_HOST="localhost:9199"

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

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

Node.js מנהל SDK
admin.initializeApp({ projectId: "your-project-id" });
משתנה הסביבה
export GCLOUD_PROJECT="your-project-id"

ייבוא ​​וייצוא של נתונים

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

firebase emulators:export ./dir

בבדיקות, בעת הפעלת אמולטור, ייבא את נתוני הבסיס.

firebase emulators:start --import=./dir

אתה יכול להורות אמולטור נתוני היצוא על כיבוי, או לציין נתיב הייצוא או פשוט תוך שימוש בנתיב עבר --import הדגל.

firebase emulators:start --import=./dir --export-on-exit

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

מגבלות

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

  • נתמכים ב- SDK לניהול, רק העלאת קבצים, הורדת קבצים ושינוי מטא נתונים של קבצים. פונקציונליות אחרים המסופקים על ידי ספריות לקוח Google Cloud Storage אינה זמינה עדיין.

מה הלאה?