การรองรับ Dart เวอร์ชันทดลองใน Cloud Functions for Firebase ช่วยให้คุณสร้างแอปแบบฟูลสแต็กด้วย Flutter และ Dart ได้ สื่อสารกับบริการอื่นๆ ของ Firebase ด้วย Firebase Admin Dart SDK ใหม่
หากต้องการเริ่มต้นใช้งานฟังก์ชัน Dart ให้ทำตามขั้นตอนการตั้งค่าในคู่มือนี้ แล้วสำรวจ Dart HTTP และฟังก์ชันที่เรียกใช้ได้ต่อไป
ข้อกำหนดเบื้องต้น
- 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
เริ่มต้นโปรเจ็กต์
วิ่ง:
firebase init functionsเลือก Dart เป็นภาษาของคุณ
เมื่อระบบถามว่า "คุณต้องการติดตั้งทรัพยากร Dependency ตอนนี้เลยไหม" ให้ตอบว่า "ใช่"
ดูโค้ดฟังก์ชัน
ดูโค้ดที่สร้างขึ้นใน 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 แทนที่จะอัปโหลดซอร์สโค้ดเพื่อสร้างใน 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 Codelab ของฟังก์ชัน Dart
- ใช้ Dart Admin SDK เวอร์ชันทดลองเพื่อโต้ตอบกับบริการอื่นๆ ของ Firebase เช่น Cloud Firestore จากฟังก์ชันของคุณ
- นอกจากฟังก์ชัน HTTP
onRequestรายการแล้ว คุณยังลองใช้ตัวอย่างonCallหรือตัวอย่างonCallที่มีการสตรีมเพื่อเรียกใช้ฟังก์ชันจากแอปโดยตรงได้ด้วย (โปรดทราบข้อจำกัดพิเศษเกี่ยวกับวิธีการเรียกใช้)
ข้อจำกัด
- ทริกเกอร์
onCallสามารถติดตั้งใช้งานได้ แต่ไม่สามารถเรียกใช้จาก SDK ของไคลเอ็นต์ด้วยเมธอดต่างๆ เช่น httpsCallable ซึ่งระบุฟังก์ชันตามชื่อ แต่คุณสามารถใช้วิธีการต่างๆ เช่น httpsCallableFromURL และส่ง URL ของ Cloud Run แบบเต็มของฟังก์ชันแทนได้ - ทริกเกอร์อื่นๆ เช่น ทริกเกอร์ Firestore สามารถเรียกใช้ในชุดโปรแกรมจำลองในเครื่องได้ แต่จะทำให้ใช้งานไม่ได้
- คอนโซล Firebase จะไม่แสดงฟังก์ชัน Dart ในระหว่างการเผยแพร่เวอร์ชันทดลอง คุณสามารถดูฟังก์ชัน Dart ในหน้าฟังก์ชัน Cloud Run ของคอนโซล Cloud แทนได้
หากพบปัญหาขณะทำงานกับฟังก์ชัน Dart เราขอแนะนำให้คุณส่งรายงานให้ทีมเพื่อช่วยเราปรับปรุงและขยาย Dart SDK เวอร์ชันทดลอง