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

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

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

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

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

 `firebase --version`

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

firebase experiments:enable dartfunctions

הפעלת הפרויקט

  1. הרצה:

    firebase init functions
    
  2. בוחרים ב-Dart כשפה.

  3. כשמוצגת השאלה "Do you want to install dependencies now?‎", עונים "Yes".

הצגת קוד הפונקציה

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

שימו לב שבקוד לדוגמה, מספר המופעים המקסימלי של הפונקציה helloWorld מוגדר ל-10 באמצעות ה-constructor‏ 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 במסוף Cloud.

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