איך מתחילים לעבוד עם Dart SDK בניסוי

תמיכה ניסיונית ב-Dart ב-Cloud Functions for Firebase מאפשרת לכם ליצור אפליקציות full-stack באמצעות Flutter ו-Dart. תקשורת עם שירותים אחרים של Firebase באמצעות Firebase Admin Dart SDK החדש.

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

דרישות מוקדמות

בודקים שיש לכם גרסה של Firebase CLI שתומכת ב-Dart ב-Cloud Functions for Firebase עם הדגל --version:

 `firebase --version`

הפעלת הניסוי ב-CLI‏ Firebase

firebase experiments:enable dartfunctions

אתחול הפרויקט

  1. הרצה:

    firebase init functions
    
  2. בחר דארט כשפה שלך.

  3. כשמופיעה השאלה "Do you want to install dependencies now?" (האם ברצונך להתקין עכשיו תלות?), עונים "Yes" (כן).

צפייה בקוד הפונקציה

צופים בקוד שנוצר ב-functions/bin/server.dart (או בנקודת הכניסה שלכם). הקוד הזה מדגים פונקציית HTTP פשוטה.

שימו לב שבקוד לדוגמה, המספר המקסימלי של מופעים לפונקציה helloWorld מוגדר ל-10 באמצעות הבונה HttpsOptions. מידע נוסף על אפשרויות זמן ריצה זמין במאמר הגדרת אפשרויות זמן ריצה.

בדיקה מקומית

firebase emulators:start

אחרי שמפעילים את Local Emulator Suite, תופיע שורה ביומן כמו functions http function initialized (http://127.0.0.1:5001/<url>). טוענים את כתובת ה-URL בדפדפן כדי לקרוא לפונקציית Dart שמופעלת באמולטור מקומי.

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

כלים לפריסה

firebase deploy --only functions

תהליך הפריסה של Dart שונה מזה של פונקציות Node.js או Python. במקום להעלות את קוד המקור כדי ליצור גרסת build ב-Cloud Build, ‏ Firebase CLI מריץ שלב קומפילציה של Dart במכונת הפיתוח ומעלה את הקובץ הבינארי שנוצר ישירות לפונקציות Cloud Run.

לאחר השלמת הפריסה, תראה שורת יומן כמו Function URL (hello-world(us-central1)): https://hello-world-<random-hash>.<region>.run.app

טוענים את כתובת ה-URL הזו בדפדפן כדי להפעיל את פונקציית Dart החדשה שהופעלה.

השלבים הבאים

מגבלות

  • אפשר לפרוס את טריגר onCall, אבל אי אפשר לקרוא לו מ-SDK של לקוח באמצעות מתודות כמו httpsCallable, שמזהות פונקציות לפי שם. במקום זאת, אפשר להשתמש בשיטות כמו httpsCallableFromURL ולהעביר את כתובת ה-URL המלאה של פונקציית Cloud Run.
  • טריגרים אחרים, כגון טריגרים של Firestore, ניתנים להרצה בסוויטת האמולטור המקומית, אך לא ניתן לפרוס אותם.
  • במהלך ההשקה הניסיונית, פונקציות Dart לא מוצגות במסוף Firebase. ניתן לצפות בפונקציות Dart בדף הפונקציות Cloud Run של קונסולת Cloud במקום זאת.

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