בדיקת מצב Datastore באמצעות אמולטור Firestore

Google Cloud CLI מספק אמולטור מקומי בזיכרון ל-Firestore, שאפשר להשתמש בו כדי לבדוק את האפליקציה שלכם ב-Firestore במצב Datastore. אפשר להשתמש באמולטור עם כל ספריות הלקוח של מצב Datastore. מומלץ להשתמש באמולטור רק לבדיקות מקומיות.

משתמשים ב-gcloud emulators firestore עם --database-mode=datastore-mode כדי לבדוק את ההתנהגות של Firestore במצב Datastore.

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

התקנת האמולטור

כדי להתקין את אמולטור Firestore, מתקינים ומעדכנים את ה-CLI של gcloud:

  1. מתקינים את ה-CLI של gcloud.

  2. כדי לקבל את התכונות העדכניות, צריך לעדכן את ההתקנה של ה-CLI של gcloud:

    gcloud components update
    

הרצת האמולטור

  1. מריצים את הפקודה הבאה כדי להפעיל את האמולטור:

    gcloud emulators firestore start --database-mode=datastore-mode
    

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

    כברירת מחדל, האמולטור מנסה להשתמש ב-127.0.0.1:8080. כדי לקשר את האמולטור למארח וליציאה ספציפיים, משתמשים בדגל האופציונלי --host-port ומחליפים את HOST ואת PORT:

    gcloud emulators firestore start --database-mode=datastore-mode --host-port=HOST:PORT
    
  2. משתמשים במקש הקיצור Control + C כדי לעצור את האמולטור.

חיבור לאמולטור

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

export DATASTORE_EMULATOR_HOST="HOST:PORT"

ייבוא ישויות לאמולטור

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

יש שתי דרכים לייבא ישויות לאמולטור. האפשרות הראשונה היא להוסיף את הדגל import-data לפקודת ההפעלה של האמולטור. השיטה השנייה היא לשלוח בקשת ייבוא POST לאמולטור. אפשר להשתמש ב-curl או בכלי דומה. כדאי לעיין בדוגמאות הבאות.

פרוטוקול

curl -X POST http://localhost:8080/emulator/v1/projects/PROJECT_ID:import \
-H 'Content-Type: application/json' \
-d '{"database":"DATABASE", "export_directory":"EXPORT_DIRECTORY"}'
משנים את localhost:8080 אם האמולטור משתמש ביציאה אחרת.