การรองรับ 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`
เปิดใช้การทดลองใน Firebase CLI
firebase experiments:enable dartfunctions
เริ่มต้นโปรเจ็กต์
- เรียกใช้:
bash 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 Firebase CLI จะเรียกใช้ขั้นตอนการคอมไพล์ Dart ในคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์และอัปโหลดไบนารีที่สร้างขึ้นไปยังฟังก์ชัน Cloud Run โดยตรง แทนที่จะอัปโหลดซอร์สโค้ดเพื่อสร้างใน Cloud BuildFirebase
เมื่อทำให้ใช้งานได้เสร็จสมบูรณ์ คุณจะเห็นบรรทัดบันทึก เช่น Function URL
(hello-world(us-central1)): https://hello-world-<random-hash>.<region>.run.app
โหลด URL นั้นในเบราว์เซอร์เพื่อเรียกใช้ฟังก์ชัน Dart ที่ทำให้ใช้งานได้ใหม่
ขั้นตอนถัดไป
- ตั้งค่าตัวเลือกการกำหนดค่า เช่น อินสแตนซ์ขั้นต่ำ
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ ฟังก์ชัน HTTP และ ฟังก์ชันที่เรียกใช้ได้
- ทำตาม Codelab ฟังก์ชัน Dart Codelab ฟังก์ชัน Dart
- ใช้ Dart Admin SDK ในระยะทดลองเพื่อโต้ตอบ กับบริการอื่นๆ Firebase เช่น Cloud Firestore จากฟังก์ชัน
- นอกเหนือจากฟังก์ชัน HTTP
onRequestแล้ว คุณยังลองใช้ตัวอย่างonCallหรือตัวอย่างonCallที่มีการสตรีมเพื่อ เรียกใช้ฟังก์ชันจากแอปโดยตรง ได้ (โปรดทราบข้อจำกัดพิเศษเกี่ยวกับวิธีการเรียกใช้)
ข้อจำกัด
- คุณทำให้ทริกเกอร์
onCallใช้งานได้ แต่จะเรียกใช้จาก Client SDKs ด้วยเมธอดต่างๆ เช่น httpsCallable, ซึ่งระบุฟังก์ชันตามชื่อไม่ได้ คุณสามารถใช้เมธอดต่างๆ เช่น httpsCallableFromURL แทน และส่ง URL แบบเต็มของ Cloud Run ของฟังก์ชัน - คุณสามารถเรียกใช้ทริกเกอร์อื่นๆ เช่น ทริกเกอร์ Firestore ใน Local Emulator Suite ได้ แต่จะทำให้ใช้งานไม่ได้
- คอนโซล Firebase จะไม่แสดงฟังก์ชัน Dart ในระหว่างการเปิดตัวระยะทดลอง แต่คุณสามารถดูฟังก์ชัน Dart ได้ในหน้าฟังก์ชัน Cloud Run ของ Cloud คอนโซล แทน
หากพบปัญหาขณะใช้งานฟังก์ชัน Dart โปรด ส่งรายงานให้ทีม เพื่อช่วยเราปรับปรุงและขยาย Dart SDK ในระยะทดลอง