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

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

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

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

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

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

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

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

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

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

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

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

curl -sL firebase.tools | bash

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

firebase init

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

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

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

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

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

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. השקת חבילת Emulator המקומית עם firebase emulators:start . פונקציות הענן ומאמצי מסדי הנתונים מתחילים, מוגדרים אוטומטית לפעולה הדדית.
  4. להציג את ממשק המשתמש מהדפדפן ב http://localhost:4000 . יציאה 4000 היא ברירת המחדל של ממשק המשתמש, אך בדוק את הודעות הטרמינל שפלט על ידי CLI Firebase. שים לב לסטטוס של אמולטורים זמינים. במקרה שלנו, אמולטורי פונקציות הענן ו- Cloud Firestore יפעלו.
    התמונה שלי
  5. בממשק המשתמש, בכרטיסיית Firestore, על כרטיסיית משנה הנתונים, לחץ אוסף התחל ופעלת בהתאם להנחיות כדי ליצור מסמך חדש בתוך messages אוספות, עם fieldname original וערך test . זה מפעיל את פונקציית הענן שלנו. שים לב כי חדש uppercase שדה מופיע זמן קצר, מאוכלס עם המחרוזת "TEST".
    התמונה שליהתמונה שלי
  6. על Firestore> בקשות הכרטיסייה, לבחון בקשות למסד הנתונים לחיקוי שלך, כולל כל ההערכות כללי אבטחת Firebase ביצע כחלק ממימוש בקשות אלה.
  7. בדוק את הכרטיסייה יומנים לאשר הפונקציה שלך לא נתקלים בשגיאות כפי שהיא עדכנה את הנתונים.

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

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

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

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

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

דְמוּי אָדָם
        // 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);
iOS - סוויפט
let settings = Firestore.firestore().settings
settings.host = "localhost:8080"
settings.isPersistenceEnabled = false 
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

גרסת אינטרנט 9

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

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

גרסת אינטרנט 8

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}
אינטרנט
// Initialize your Web app as described in the Get started for Web
// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}

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

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

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

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

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

מה הלאה?

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