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

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

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

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

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

 `firebase --version`

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

firebase experiments:enable dartfunctions

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

  1. ריצה: bash firebase init functions
  2. בוחרים ב-Dart כשפה.
  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, ה-CLI של Firebase מריץ שלב קומפילציה של 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 functions של מסוף Cloud.

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