ติดตั้ง กำหนดค่า และผสานรวมชุดโปรแกรมจำลองภายใน

คุณติดตั้งและกำหนดค่า Firebase Local Emulator Suite สำหรับสภาพแวดล้อมการสร้างต้นแบบและการทดสอบต่างๆ ได้ ตั้งแต่เซสชันการสร้างต้นแบบแบบครั้งเดียวไปจนถึงเวิร์กโฟลว์การรวมอย่างต่อเนื่องระดับการผลิต

ติดตั้ง Local Emulator Suite

ก่อนติดตั้ง Emulator Suite คุณจะต้องมีสิ่งต่อไปนี้

  • Node.js เวอร์ชัน 16.0 ขึ้นไป
  • Java JDK เวอร์ชัน 11 ขึ้นไป

วิธีติดตั้งชุดโปรแกรมจำลอง

  1. ติดตั้ง Firebase CLI หากยังไม่ได้ติดตั้ง Firebase CLI ให้ติดตั้งตอนนี้ คุณต้องใช้ CLI เวอร์ชัน 8.14.0 ขึ้นไปจึงจะใช้ชุดโปรแกรมจำลองได้ คุณ ตรวจสอบเวอร์ชันที่ติดตั้งได้โดยใช้คำสั่งต่อไปนี้
    firebase --version
  2. หากยังไม่ได้ดำเนินการ ให้เริ่มต้นไดเรกทอรีการทำงานปัจจุบัน เป็นโปรเจ็กต์ Firebase โดยทำตามข้อความแจ้งบนหน้าจอเพื่อระบุผลิตภัณฑ์ ที่จะใช้
    firebase init
  3. ตั้งค่าชุดโปรแกรมจำลอง คำสั่งนี้จะเริ่มวิซาร์ดการกำหนดค่าที่ ช่วยให้คุณเลือกโปรแกรมจำลองที่สนใจ ดาวน์โหลดไบนารีของโปรแกรมจำลองที่เกี่ยวข้อง และตั้งค่าพอร์ตของโปรแกรมจำลองได้หากค่าเริ่มต้นไม่เหมาะสม
    firebase init emulators

เมื่อติดตั้งโปรแกรมจำลองแล้ว ระบบจะไม่ตรวจหาการอัปเดตและจะไม่มีการดาวน์โหลดอัตโนมัติเพิ่มเติมจนกว่าคุณจะอัปเดต Firebase CLI เป็นเวอร์ชันล่าสุด

กำหนดค่าชุดโปรแกรมจำลอง

คุณเลือกกำหนดค่าพอร์ตเครือข่ายของโปรแกรมจำลองและเส้นทางไปยังคำจำกัดความของกฎความปลอดภัยได้ในไฟล์ firebase.json

  • เปลี่ยนพอร์ตของโปรแกรมจำลองโดยเรียกใช้ firebase init emulators หรือแก้ไข firebase.json ด้วยตนเอง
  • เปลี่ยนเส้นทางไปยังคำจำกัดความของกฎความปลอดภัยโดยการแก้ไข firebase.json ด้วยตนเอง

หากคุณไม่ได้กำหนดค่าเหล่านี้ อีมูเลเตอร์จะรับฟังในพอร์ตเริ่มต้น และอีมูเลเตอร์ Cloud Firestore, Realtime Database และ Cloud Storage for Firebase จะทำงานโดยมีความปลอดภัยของข้อมูลแบบเปิด

คำสั่ง คำอธิบาย
init emulators เริ่มวิซาร์ดการเริ่มต้นโปรแกรมจำลอง ระบุโปรแกรมจำลองที่จะติดตั้ง และระบุการตั้งค่าพอร์ตของโปรแกรมจำลอง (ไม่บังคับ) init emulators ไม่ทำลายข้อมูล การยอมรับค่าเริ่มต้นจะรักษาการกำหนดค่าโปรแกรมจำลองปัจจุบันไว้

การกำหนดค่าพอร์ต

โปรแกรมจำลองแต่ละรายการจะเชื่อมโยงกับพอร์ตที่ต่างกันในเครื่องของคุณโดยมีค่าเริ่มต้นที่ต้องการ

โปรแกรมจำลอง พอร์ตเริ่มต้น
Authentication 9099
App Hosting 5002
Emulator Suite UI 4000
Cloud Functions 5001
Eventarc 9299
Realtime Database 9000
Cloud Firestore 8080
Cloud Storage for Firebase 9199
Firebase Hosting 5000
Pub/Sub 8085

การกำหนดค่ารหัสโปรเจ็กต์

คุณอาจเรียกใช้ Emulator หลายอินสแตนซ์โดยใช้รหัสโปรเจ็กต์ Firebase ที่แตกต่างกัน หรือเรียกใช้ Emulator หลายอินสแตนซ์สำหรับรหัสโปรเจ็กต์ที่กำหนด ทั้งนี้ขึ้นอยู่กับวิธีเรียกใช้ Emulator ในกรณีดังกล่าว อินสแตนซ์ของโปรแกรมจำลองจะทำงานใน สภาพแวดล้อมที่แยกต่างหาก

โดยทั่วไปแล้ว การตั้งรหัสโปรเจ็กต์เดียวสำหรับการเรียกใช้โปรแกรมจำลองทั้งหมดถือเป็นแนวทางปฏิบัติที่ดี เพื่อให้ Emulator Suite UI, โปรแกรมจำลองผลิตภัณฑ์ต่างๆ และอินสแตนซ์ที่กำลังทำงานทั้งหมดของโปรแกรมจำลองหนึ่งๆ สามารถสื่อสารได้อย่างถูกต้องในทุกกรณี

Local Emulator Suite จะแสดงคำเตือนเมื่อตรวจพบรหัสโปรเจ็กต์หลายรายการใน สภาพแวดล้อม แต่คุณสามารถลบล้างลักษณะการทำงานนี้ได้โดยตั้งค่าคีย์ singleProjectMode เป็น false ใน firebase.json

คุณสามารถตรวจสอบประกาศรหัสโปรเจ็กต์เพื่อดูความไม่ตรงกันได้ใน

  • โปรเจ็กต์เริ่มต้นในบรรทัดคำสั่ง โดยค่าเริ่มต้น ระบบจะใช้รหัสโปรเจ็กต์ เมื่อเริ่มต้นจากโปรเจ็กต์ที่เลือกด้วย firebase init หรือ firebase use หากต้องการดูรายการโปรเจ็กต์ (และดูว่ามีการเลือกโปรเจ็กต์ใด) ให้ใช้ firebase projects:list
  • การทดสอบหน่วยของกฎ โดยมักจะระบุรหัสโปรเจ็กต์ในการเรียกใช้เมธอดของไลบรารีการทดสอบหน่วยของกฎ initializeTestEnvironment หรือ initializeTestApp
  • Flag บรรทัดคำสั่ง --project การส่งแฟล็ก Firebase CLI --project จะลบล้างโปรเจ็กต์เริ่มต้น คุณจะต้องตรวจสอบว่าค่า ของ Flag ตรงกับรหัสโปรเจ็กต์ในการทดสอบหน่วยและการเริ่มต้นแอป

นอกจากนี้ ให้ตรวจสอบการกำหนดค่ารหัสโปรเจ็กต์เฉพาะแพลตฟอร์มที่คุณตั้งค่าไว้ขณะ กำหนดค่าโปรเจ็กต์ Apple Platforms Android และเว็บ

การกำหนดค่ากฎความปลอดภัย

โปรแกรมจำลองจะใช้การกำหนดค่ากฎความปลอดภัยจาก database, firestore และคีย์การกำหนดค่า storage ใน firebase.json

{
  // Existing firebase configuration ...
  "database": {
    "rules": "database.rules.json"
  },
  "firestore": {
    "rules": "firestore.rules"
  },
  "storage": {
    "rules": "storage.rules"
  }

  // ...

  // Optional emulator configuration. Default
  // values are used if absent.
  "emulators": {
    "singleProjectMode": false, // do not warn on detection of multiple project IDs
    "firestore": {
      "port": "8080"
    },
    "ui": {
      "enabled": true,      // Default is `true`
      "port": 4000          // If unspecified, see CLI log for selected port
    },
    "auth": {
      "port": "9099"
    },
    "pubsub": {
      "port": "8085"
    }
  }
}

การระบุตัวเลือก Java

Realtime Databaseอีมูเลเตอร์ Cloud Firestoreอีมูเลเตอร์ และส่วนหนึ่งของCloud Storage for Firebaseอีมูเลเตอร์สร้างขึ้นจาก Java ซึ่งปรับแต่งได้ ด้วยแฟล็ก JVM ผ่านตัวแปรสภาพแวดล้อม JAVA_TOOL_OPTIONS

ตัวอย่างเช่น หากพบข้อผิดพลาดเกี่ยวกับพื้นที่ฮีปของ Java คุณอาจเพิ่ม ขนาดฮีปของ Java สูงสุดเป็น 4 GB ได้โดยทำดังนี้

export JAVA_TOOL_OPTIONS="-Xmx4g"
firebase emulators:start

คุณระบุแฟล็กหลายรายการในเครื่องหมายคำพูดโดยคั่นด้วยการเว้นวรรคได้ เช่น JAVA_TOOL_OPTIONS="-Xms2g -Xmx4g" โดยแฟล็กจะมีผลกับคอมโพเนนต์ที่ใช้ Java ของโปรแกรมจำลองเท่านั้น และจะไม่มีผลกับส่วนอื่นๆ ของ FirebaseCLI เช่น Emulator Suite UI

เริ่มโปรแกรมจำลอง

คุณสามารถเริ่มโปรแกรมจำลองให้ทำงานจนกว่าจะสิ้นสุดด้วยตนเอง หรือให้ทำงานตาม ระยะเวลาของสคริปต์ทดสอบที่กำหนด แล้วปิดโดยอัตโนมัติ

คำสั่ง คำอธิบาย
emulators:start เริ่มโปรแกรมจำลองสำหรับผลิตภัณฑ์ Firebase ที่กำหนดค่าไว้ใน firebase.json กระบวนการของโปรแกรมจำลองจะทำงานต่อไปจนกว่าจะหยุดอย่างชัดเจน การเรียกใช้ emulators:start จะดาวน์โหลดโปรแกรมจำลองไปยัง ~/.cache/firebase/emulators/ หาก ยังไม่ได้ติดตั้ง
ตั้งค่าสถานะ คำอธิบาย
--only ไม่บังคับ จำกัด โปรแกรมจำลองที่จะเริ่มต้น ระบุรายการชื่อโปรแกรมจำลองที่คั่นด้วยคอมมา โดยระบุ 'auth', 'database', 'firestore', 'functions', 'hosting' หรือ 'pubsub' อย่างน้อย 1 รายการ
--inspect-functions debug_port ไม่บังคับ ใช้กับโปรแกรมจำลอง Cloud Functions เพื่อเปิดใช้การแก้ไขข้อบกพร่องของฟังก์ชันที่จุดพักที่พอร์ตที่ระบุ (หรือพอร์ตเริ่มต้น 9229 หากละเว้นอาร์กิวเมนต์) โปรดทราบว่าเมื่อระบุแฟล็กนี้ Cloud Functionsโปรแกรมจำลองจะเปลี่ยนไปใช้โหมดการดำเนินการแบบอนุกรมพิเศษ ซึ่งฟังก์ชันจะดำเนินการในกระบวนการเดียวตามลำดับ (FIFO) ซึ่งจะช่วยลดความซับซ้อนในการแก้ไขข้อบกพร่องของฟังก์ชัน แม้ว่าลักษณะการทำงานจะแตกต่างจากการดำเนินการแบบขนานของฟังก์ชันหลายกระบวนการในระบบคลาวด์ก็ตาม
--export-on-exit= ไม่บังคับ ใช้กับโปรแกรมจำลอง Authentication, Cloud Firestore, Realtime Database หรือ Cloud Storage for Firebase สั่งให้โปรแกรมจำลองส่งออกข้อมูลไปยังไดเรกทอรี เมื่อเกิดการปิดระบบ ตามที่อธิบายไว้สำหรับคำสั่ง emulators:export คุณระบุไดเรกทอรีส่งออกได้ด้วยแฟล็กต่อไปนี้ firebase emulators:start --export-on-exit=./saved-data หากใช้ --import เส้นทางการส่งออกจะตั้งค่าเริ่มต้นเป็นเส้นทางเดียวกัน เช่น firebase emulators:start --import=./data-path --export-on-exit สุดท้ายนี้ หากต้องการ ให้ส่งเส้นทางไดเรกทอรีที่แตกต่างกันไปยังแฟล็ก --import และ --export-on-exit
--import=import_directory ไม่บังคับ ใช้กับโปรแกรมจำลอง Authentication, Cloud Firestore, Realtime Database หรือ Cloud Storage for Firebase นำเข้าข้อมูลที่บันทึกไว้โดยใช้ ตัวเลือกการเริ่มต้น --export-on-exit หรือคำสั่ง emulators:export ไปยังอินสแตนซ์โปรแกรมจำลอง Authentication, Cloud Firestore, Realtime Database หรือ Cloud Storage for Firebase ที่กำลังทำงาน ข้อมูลทั้งหมดที่อยู่ในหน่วยความจำของโปรแกรมจำลอง จะถูกเขียนทับ
--log-verbosity=verbosity ไม่บังคับ ลดปริมาณเอาต์พุตการบันทึกจากโปรแกรมจำลองเพื่อลด สัญญาณรบกวนในคอนโซลและในไฟล์บันทึก ค่าที่ใช้ได้คือ DEBUG, INFO, QUIET, SILENT
emulators:exec scriptpath เรียกใช้สคริปต์ที่ scriptpath หลังจากเริ่มโปรแกรมจำลองสำหรับผลิตภัณฑ์ Firebase ที่กำหนดค่าไว้ใน firebase.json กระบวนการของโปรแกรมจำลองจะหยุดโดยอัตโนมัติเมื่อ สคริปต์ทำงานเสร็จแล้ว
ตั้งค่าสถานะ คำอธิบาย
--only ไม่บังคับ จำกัด โปรแกรมจำลองที่จะเริ่มต้น ระบุรายการชื่อโปรแกรมจำลองที่คั่นด้วยคอมมา โดยระบุ 'firestore', 'database', 'functions', 'hosting' หรือ 'pubsub' อย่างน้อย 1 รายการ
--inspect-functions debug_port ไม่บังคับ ใช้กับโปรแกรมจำลอง Cloud Functions เพื่อเปิดใช้การแก้ไขข้อบกพร่องของฟังก์ชันที่จุดพักที่พอร์ตที่ระบุ (หรือพอร์ตเริ่มต้น 9229 หากละเว้นอาร์กิวเมนต์) โปรดทราบว่าเมื่อระบุแฟล็กนี้ Cloud Functionsโปรแกรมจำลองจะเปลี่ยนไปใช้โหมดการดำเนินการแบบอนุกรมพิเศษ ซึ่งฟังก์ชันจะดำเนินการในกระบวนการเดียวตามลำดับ (FIFO) ซึ่งจะช่วยลดความซับซ้อนในการแก้ไขข้อบกพร่องของฟังก์ชัน แม้ว่าลักษณะการทำงานจะแตกต่างจากการดำเนินการแบบขนานหลายกระบวนการของฟังก์ชันในระบบคลาวด์ก็ตาม
--export-on-exit= ไม่บังคับ ใช้กับโปรแกรมจำลอง Authentication, Cloud Firestore, Realtime Database หรือ Cloud Storage for Firebase สั่งให้โปรแกรมจำลองส่งออกข้อมูลไปยังไดเรกทอรี เมื่อเกิดการปิดระบบ ตามที่อธิบายไว้สำหรับคำสั่ง emulators:export คุณระบุไดเรกทอรีส่งออกได้ด้วยแฟล็กต่อไปนี้ firebase emulators:start --export-on-exit=./saved-data หากใช้ --import เส้นทางการส่งออกจะตั้งค่าเริ่มต้นเป็นเส้นทางเดียวกัน เช่น firebase emulators:start --import=./data-path --export-on-exit สุดท้ายนี้ หากต้องการ ให้ส่งเส้นทางไดเรกทอรีที่แตกต่างกันไปยังแฟล็ก --import และ --export-on-exit
--import=import_directory ไม่บังคับ ใช้กับโปรแกรมจำลอง Authentication, Cloud Firestore, Realtime Database หรือ Cloud Storage for Firebase นำเข้าข้อมูลที่บันทึกไว้โดยใช้ ตัวเลือกการเริ่มต้น --export-on-exit หรือคำสั่ง emulators:export ไปยังอินสแตนซ์โปรแกรมจำลอง Authentication, Cloud Firestore, Realtime Database หรือ Cloud Storage for Firebase ที่กำลังทำงาน ข้อมูลทั้งหมดที่อยู่ในหน่วยความจำของโปรแกรมจำลอง จะถูกเขียนทับ
--ui ไม่บังคับ เรียกใช้ UI ของโปรแกรมจำลองในระหว่างการดำเนินการ
--log-verbosity=verbosity ไม่บังคับ ลดปริมาณเอาต์พุตการบันทึกจากโปรแกรมจำลองเพื่อลดสัญญาณรบกวน ในคอนโซลและในไฟล์บันทึก ค่าที่ใช้ได้คือ DEBUG, INFO, QUIET, SILENT

โดยทั่วไปแล้ว วิธี firebase emulators:exec จะเหมาะกับเวิร์กโฟลว์การผสานรวมอย่างต่อเนื่องมากกว่า

ส่งออกและนำเข้าข้อมูลโปรแกรมจำลอง

คุณสามารถส่งออกข้อมูลจากโปรแกรมจำลอง Authentication, Cloud Firestore, Realtime Database และ Cloud Storage for Firebase เพื่อใช้เป็นชุดข้อมูลพื้นฐานทั่วไปที่แชร์ได้ คุณสามารถนําเข้าชุดข้อมูลเหล่านี้ได้โดยใช้แฟล็ก --import ตามที่อธิบายไว้ข้างต้น

emulators:export export_directory

Authentication, Cloud Firestore, Realtime Database หรือโปรแกรมจำลอง Cloud Storage for Firebase ส่งออกข้อมูลจากอินสแตนซ์โปรแกรมจำลอง Cloud Firestore, Realtime Database หรือ Cloud Storage for Firebase ที่กำลังทำงาน ระบบจะสร้าง export_directory ที่ระบุหากยังไม่มี หากมีไดเรกทอรีที่ระบุ ระบบจะแจ้งให้คุณยืนยันว่า ควรเขียนทับข้อมูลการส่งออกก่อนหน้านี้ คุณข้ามข้อความแจ้งนี้ได้โดยใช้ แฟล็ก --force ไดเรกทอรีการส่งออกมีไฟล์ Manifest ของข้อมูล firebase-export-metadata.json

คุณสามารถสั่งให้โปรแกรมจำลองส่งออกข้อมูลโดยอัตโนมัติเมื่อปิดเครื่องได้โดยใช้ --export-on-exit ที่อธิบายไว้ข้างต้น

ผสานรวมกับระบบ CI

การเรียกใช้อิมเมจชุดโปรแกรมจำลองที่สร้างโดยใช้คอนเทนเนอร์

การติดตั้งและกำหนดค่า Emulator Suite ด้วยคอนเทนเนอร์ในการตั้งค่า CI ทั่วไปนั้นทำได้ง่ายๆ

ข้อควรทราบมีดังนี้

  • ระบบจะติดตั้งและแคชไฟล์ JAR ที่ ~/.cache/firebase/emulators/

    • คุณอาจต้องเพิ่มเส้นทางนี้ลงในการกำหนดค่าแคช CI เพื่อหลีกเลี่ยงการดาวน์โหลดซ้ำ
  • หากไม่มีไฟล์ firebase.json ในที่เก็บ คุณต้องเพิ่มอาร์กิวเมนต์บรรทัดคำสั่งลงในคำสั่ง emulators:start หรือ emulators:exec เพื่อระบุว่าควรเริ่มต้นโปรแกรมจำลองใด เช่น
    --only functions,firestore

สร้างโทเค็นการตรวจสอบสิทธิ์ (เฉพาะโปรแกรมจำลองการโฮสต์)

หากเวิร์กโฟลว์การผสานรวมอย่างต่อเนื่องของคุณต้องอาศัย Firebase Hosting คุณจะต้องเข้าสู่ระบบโดยใช้โทเค็นเพื่อเรียกใช้ firebase emulators:exec ส่วนโปรแกรมจำลองอื่นๆ ไม่จำเป็นต้องเข้าสู่ระบบ

หากต้องการสร้างโทเค็น ให้เรียกใช้ firebase login:ci ในสภาพแวดล้อมในเครื่องของคุณ โดยไม่ควรดำเนินการจากระบบ CI ทำตามวิธีการเพื่อตรวจสอบสิทธิ์ คุณควรทำขั้นตอนนี้เพียงครั้งเดียวต่อโปรเจ็กต์ เนื่องจากโทเค็นจะใช้ได้กับทุกบิลด์ คุณควรถือว่าโทเค็นเป็นเหมือนรหัสผ่านและเก็บโทเค็นไว้เป็นความลับ

หากสภาพแวดล้อม CI อนุญาตให้คุณระบุตัวแปรสภาพแวดล้อมที่ใช้ในสคริปต์บิลด์ได้ เพียงสร้างตัวแปรสภาพแวดล้อมชื่อ FIREBASE_TOKEN โดยมีค่าเป็นสตริงโทเค็นการเข้าถึง Firebase CLI จะเลือกตัวแปรสภาพแวดล้อม FIREBASE_TOKEN โดยอัตโนมัติและ อีมูเลเตอร์จะเริ่มทำงานอย่างถูกต้อง

ในกรณีสุดท้าย คุณสามารถใส่โทเค็นในสคริปต์บิลด์ได้ แต่ โปรดตรวจสอบว่าบุคคลที่ไม่น่าเชื่อถือไม่มีสิทธิ์เข้าถึง สำหรับแนวทางที่ฮาร์ดโค้ดนี้ คุณสามารถเพิ่ม --token "YOUR_TOKEN_STRING_HERE" ลงในคำสั่ง firebase emulators:exec ได้

ใช้ REST API ของ Emulator Hub

แสดงรายการโปรแกรมจำลองที่กำลังทำงาน

หากต้องการแสดงรายการโปรแกรมจำลองที่กำลังทำงานอยู่ ให้ส่งคำขอ GET ไปยัง/emulators ปลายทางของ Emulator Hub

curl localhost:4400/emulators

ผลลัพธ์จะเป็นออบเจ็กต์ JSON ที่แสดงรายการโปรแกรมจำลองที่กำลังทำงานทั้งหมดและการกำหนดค่าโฮสต์/พอร์ต เช่น

{
  "hub":{
    "name": "hub",
    "host": "localhost",
    "port": 4400
  },
  "functions": {
    "name": "functions",
    "host": "localhost",
    "port": 5001
  }
  "firestore": {
    "name": "firestore",
    "host": "localhost",
    "port": 8080
  }
}

เปิดใช้ / ปิดใช้ทริกเกอร์ฟังก์ชันเบื้องหลัง

ในบางสถานการณ์ คุณจะต้องปิดใช้ฟังก์ชันในเครื่องและทริกเกอร์ส่วนขยายชั่วคราว เช่น คุณอาจต้องการลบข้อมูลทั้งหมดในCloud Firestoreโปรแกรมจำลองโดยไม่เรียกใช้ฟังก์ชัน onDelete ใดๆ ที่ทำงานในโปรแกรมจำลอง Cloud Functions หรือ Extensions

หากต้องการปิดใช้ทริกเกอร์ฟังก์ชันในเครื่องชั่วคราว ให้ส่งคำขอ PUT ไปยังปลายทาง /functions/disableBackgroundTriggers ของ Emulator Hub

curl -X PUT localhost:4400/functions/disableBackgroundTriggers

ผลลัพธ์จะเป็นออบเจ็กต์ JSON ที่แสดงรายละเอียดสถานะปัจจุบัน

{
  "enabled": false
}

หากต้องการเปิดใช้ทริกเกอร์ฟังก์ชันภายในหลังจากที่ปิดใช้แล้ว ให้ส่งคำขอ PUT ไปยังปลายทาง /functions/enableBackgroundTriggers ของ Emulator Hub

curl -X PUT localhost:4400/functions/enableBackgroundTriggers

ผลลัพธ์จะเป็นออบเจ็กต์ JSON ที่แสดงรายละเอียดสถานะปัจจุบัน

{
  "enabled": true
}

การผสานรวม SDK ของโปรแกรมจำลอง

ตารางในส่วนนี้ระบุว่า SDK ของไคลเอ็นต์ และ Admin SDK รองรับโปรแกรมจำลองใดบ้าง ในอนาคตหมายความว่าเราวางแผนที่จะรองรับโปรแกรมจำลอง แต่ยังไม่พร้อมใช้งาน

ความพร้อมใช้งานของ Client SDK

Android แพลตฟอร์มของ Apple เว็บ Firebase UI
Android
Firebase UI
iOS
Firebase UI
เว็บ
Realtime Database 19.4.0 7.2.0 8.0.0 6.4.0 อนาคต ไม่มี
Cloud Firestore 21.6.0 7.2.0 8.0.0 6.4.0 อนาคต ไม่มี
Authentication 20.0.0 7.0.0 8.0.0 7.0.0 อนาคต 4.7.2
Cloud Storage for Firebase 20.0.0 8.0.0 8.4.0 7.0.0 11.0.0 ไม่มี
Cloud Functions 19.1.0 7.2.0 8.0.0 ไม่มี ไม่มี ไม่มี
Hosting ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี
Extensions ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี

ความพร้อมใช้งานของ Admin SDK

โหนด Java Python Go
Realtime Database 8.6.0 6.10.0 2.18.0 อนาคต
Cloud Firestore 8.0.0 6.10.0 3.0.0 1.0.0
Authentication 9.3.0 7.2.0 5.0.0 4.2.0
Cloud Storage for Firebase 9.8.0 อนาคต อนาคต อนาคต
Cloud Functions ไม่มี ไม่มี ไม่มี ไม่มี
Hosting ไม่มี ไม่มี ไม่มี ไม่มี
Extensions ไม่มี ไม่มี ไม่มี ไม่มี