תמיכה ניסיונית ב-Dart ב-Cloud Functions for Firebase מאפשרת לכם ליצור אפליקציות full-stack באמצעות Flutter ו-Dart. תקשורת עם שירותים אחרים של Firebase באמצעות Firebase Admin Dart SDK החדש.
כדי להתחיל להשתמש בפונקציות Dart, צריך לבצע את משימות ההגדרה במדריך הזה ואז להמשיך ולבדוק את פונקציות ה-HTTP והפונקציות שניתן להפעיל ב-Dart.
דרישות מוקדמות
- Dart SDK בגרסה 3.9 ואילך
- Firebase CLI (גרסה 15.15.0 ומעלה)
בודקים אם יש לכם גרסה של Firebase CLI שתומכת ב-Dart ב-Cloud Functions for Firebase באמצעות הדגל --version:
`firebase --version`
הפעלת הניסוי ב-CLI Firebase
firebase experiments:enable dartfunctions
אתחול הפרויקט
ריצה:
firebase init functionsבוחרים ב-Dart כשפה.
כשמוצגת השאלה 'האם להתקין עכשיו את יחסי התלות?', עונים 'כן'.
צפייה בקוד הפונקציה
רואים את הקוד שנוצר ב-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 החדשה שפרסתם.
השלבים הבאים
- מגדירים אפשרויות הגדרה כמו מספר מופעים מינימלי.
- מידע נוסף על פונקציות HTTP ועל פונקציות שאפשר להפעיל
- פועלים לפי ההוראות במדריך Codelab בנושא פונקציות Dart Dart Functions codelab
- אפשר להשתמש ב-Dart Admin SDK הניסיוני כדי ליצור אינטראקציה עם שירותים אחרים של Firebase, כמו Cloud Firestore, מהפונקציה
- בנוסף ל
onRequestפונקציות HTTP, אפשר לנסות דוגמה שלonCallאו דוגמה שלonCallעם סטרימינג כדי להפעיל פונקציות ישירות מהאפליקציה (שימו לב למגבלה המיוחדת בנוגע לשיטת ההפעלה).
מגבלות
- אפשר לפרוס את הטריגר
onCall, אבל אי אפשר לקרוא לו מ-SDK של לקוח באמצעות שיטות כמו httpsCallable, שמזהות פונקציות לפי שם. במקום זאת, אפשר להשתמש במתודות כמו httpsCallableFromURL ולהעביר את כתובת ה-URL המלאה של פונקציית Cloud Run. - אפשר להפעיל טריגרים אחרים, כמו טריגרים של Firestore, בחבילת אמולטורים מקומית, אבל אי אפשר לפרוס אותם.
- פונקציות Dart לא מוצגות במסוף Firebase במהלך ההשקה הניסיונית. אפשר לראות פונקציות של Dart בדף הפונקציותCloud Run של מסוף Cloud.
אם נתקלתם בבעיות במהלך העבודה עם פונקציות של Dart, מומלץ לשלוח לצוות דוח כדי לעזור לנו לשפר ולהרחיב את ה-SDK הניסיוני של Dart.