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

לפני שאתה קופץ עם Firebase Local Emulator Suite, ודא שיצרת פרויקט Firebase, הגדרת את סביבת הפיתוח שלך ובחרת והתקנת Firebase SDK עבור הפלטפורמה שלך בהתאם לנושאים 'התחלה עם Firebase' עבור הפלטפורמה שלך: Apple , Android או אינטרנט .

אב טיפוס ובדיקה

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

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

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

לאחר אתחול מקומי של פרויקט Firebase, מחזור הפיתוח באמצעות Local Emulator Suite יכלול בדרך כלל שלושה שלבים:

  1. אב-טיפוס כולל באופן אינטראקטיבי עם האמולטורים וממשק המשתמש של Emulator Suite.

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

  3. הפוך את הבדיקות שלך לאוטומטיות עם האמולטורים והתסריטים המותאמים אישית.

אתחול פרויקט Firebase באופן מקומי

ודא שאתה מתקין את ה-CLI או עדכן לגרסה האחרונה שלו .

curl -sL firebase.tools | bash

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

firebase init

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

אב טיפוס באופן אינטראקטיבי

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

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

הכל זמין כשאתה מפעיל את חבילת האמולטור המקומי עם:

firebase emulators:start

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

  1. צור פונקציית ענן המופעלת על ידי כתיבת מסד נתונים על ידי עריכת קובץ functions/index.js בספריית הפרויקט שלך. החלף את תוכן הקובץ הקיים בקטע הבא. פונקציה זו מאזינה לשינויים במסמכים באוסף messages , ממירה את תוכן השדה original של המסמך לאותיות רישיות ומאחסנת את התוצאה בשדה האותיות uppercase של אותו מסמך.
  2.   const functions = require('firebase-functions');
    
      exports.makeUppercase = functions.firestore.document('/messages/{documentId}')
          .onCreate((snap, context) => {
            const original = snap.data().original;
            console.log('Uppercasing', context.params.documentId, original);
            const uppercase = original.toUpperCase();
            return snap.ref.set({uppercase}, {merge: true});
          });
      
  3. הפעל את חבילת האימולטור המקומי עם firebase emulators:start . פונקציות הענן ואמולטורים של מסד הנתונים מתחילים, מוגדרים אוטומטית לפעולה הדדית.
  4. הצג את ממשק המשתמש בדפדפן שלך בכתובת http://localhost:4000 . יציאה 4000 היא ברירת המחדל עבור ממשק המשתמש, אך בדוק את הודעות המסוף שיוצאות מ-Firebase CLI. שימו לב לסטטוס של אמולטורים זמינים. במקרה שלנו, האמולטורים של Cloud Functions ו-Cloud Firestore יפעלו.
    התמונה שלי
  5. בממשק המשתמש, בכרטיסייה Firestore > נתונים , לחץ על התחל איסוף ופעל לפי ההנחיות כדי ליצור מסמך חדש באוסף messages , עם שם השדה original test הערך . זה מפעיל את פונקציית הענן שלנו. שים לב ששדה חדש uppercase מופיע בקרוב, מאוכלס במחרוזת "TEST".
    התמונה שליהתמונה שלי
  6. בכרטיסייה Firestore > בקשות , בדוק בקשות שנשלחו למסד הנתונים המדומה שלך, כולל כל הערכות כללי האבטחה של Firebase שבוצעו כחלק ממילוי הבקשות הללו.
  7. בדוק את הכרטיסייה יומנים כדי לוודא שהפונקציה שלך לא נתקלה בשגיאות בזמן שהיא עדכנה את מסד הנתונים.

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

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

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

זכור ש- Local Emulator Suite הוא כלי פיתוח מקומי. כתיבה לבסיסי הנתונים של הייצור שלך לא תפעיל פונקציות שאתה מייצר אב טיפוס מקומי.

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

Kotlin+KTX
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
val firestore = Firebase.firestore
firestore.useEmulator("10.0.2.2", 8080)

firestore.firestoreSettings = firestoreSettings {
    isPersistenceEnabled = false
}
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.useEmulator("10.0.2.2", 8080);

FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
        .setPersistenceEnabled(false)
        .build();
firestore.setFirestoreSettings(settings);
מָהִיר
let settings = Firestore.firestore().settings
settings.host = "127.0.0.1:8080"
settings.cacheSettings = MemoryCacheSettings()
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

Web modular API

import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

// firebaseApps previously initialized using initializeApp()
const db = getFirestore();
connectFirestoreEmulator(db, '127.0.0.1', 8080);

Web namespaced API

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("127.0.0.1", 8080);
}

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

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

firebase emulators:exec "./testdir/test.sh"

חקור אמולטורים בודדים יותר לעומק

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

מה הלאה?

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