ก่อนที่คุณจะเข้าร่วมด้วย Firebase Local Emulator Suite ตรวจสอบให้แน่ใจว่าคุณได้สร้างโปรเจ็กต์ Firebase ตั้งค่าสภาพแวดล้อมการพัฒนาของคุณ และเลือกและติดตั้ง Firebase SDK สำหรับแพลตฟอร์มของคุณตามหัวข้อ เริ่มต้นใช้งาน Firebase สำหรับแพลตฟอร์มของคุณ: Apple , Android หรือ เว็บ
ต้นแบบและการทดสอบ
Local Emulator Suite มีตัวจำลองผลิตภัณฑ์หลายตัว ตามที่อธิบายไว้ใน Introduction to Firebase Local Emulator Suite คุณสามารถสร้างต้นแบบและทดสอบด้วยอีมูเลเตอร์แต่ละตัว รวมถึงอีมูเลเตอร์หลายตัวรวมกันตามที่เห็นสมควร ซึ่งสอดคล้องกับผลิตภัณฑ์ Firebase ที่คุณใช้ในการผลิต

สำหรับหัวข้อนี้ เพื่อแนะนำเวิร์กโฟลว์ Local Emulator Suite สมมติว่าคุณกำลังทำงานกับแอปที่ใช้ชุดผลิตภัณฑ์ทั่วไป: ฐานข้อมูล Firebase และฟังก์ชันระบบคลาวด์ที่ทริกเกอร์โดยการดำเนินการในฐานข้อมูลนั้น
หลังจากที่คุณเริ่มต้นโปรเจ็กต์ Firebase ในเครื่องแล้ว รอบการพัฒนาโดยใช้ Local Emulator Suite จะมีสามขั้นตอนดังนี้
คุณสมบัติต้นแบบแบบโต้ตอบกับอีมูเลเตอร์และ Emulator Suite UI
หากคุณกำลังใช้โปรแกรมจำลองฐานข้อมูลหรือโปรแกรมจำลอง Cloud Functions ให้ดำเนินการขั้นตอนเดียวเพื่อเชื่อมต่อแอปของคุณกับโปรแกรมจำลอง
ทำให้การทดสอบของคุณเป็นแบบอัตโนมัติด้วยโปรแกรมจำลองและสคริปต์ที่กำหนดเอง
เริ่มต้นโปรเจ็กต์ Firebase ในเครื่อง
ตรวจสอบให้แน่ใจว่าคุณ ติดตั้ง CLI หรือ อัปเดตเป็นเวอร์ชันล่าสุด
curl -sL firebase.tools | bash
หากคุณยังไม่ได้ดำเนินการดังกล่าว ให้เริ่มต้นไดเร็กทอรีการทำงานปัจจุบันเป็นโปรเจ็กต์ Firebase โดยทำตามคำแนะนำบนหน้าจอเพื่อระบุว่าคุณกำลังใช้ Cloud Functions และ Cloud Firestore หรือ Realtime Database :
firebase init
ไดเรกทอรีโครงการของคุณจะมีไฟล์การกำหนดค่า Firebase ไฟล์คำจำกัดความกฎความปลอดภัยของ Firebase สำหรับฐานข้อมูล ไดเรกทอรี functions
ที่มีรหัสฟังก์ชันระบบคลาวด์ และไฟล์สนับสนุนอื่นๆ
ต้นแบบแบบโต้ตอบ
Local Emulator Suite ได้รับการออกแบบมาเพื่อให้คุณสร้างต้นแบบคุณลักษณะใหม่ๆ ได้อย่างรวดเร็ว และอินเทอร์เฟซผู้ใช้ในตัวของ Suite ก็เป็นหนึ่งในเครื่องมือสร้างต้นแบบที่มีประโยชน์ที่สุด มันเหมือนกับการมีคอนโซล Firebase ทำงานในเครื่อง
เมื่อใช้ Emulator Suite UI คุณสามารถทำซ้ำการออกแบบฐานข้อมูล ลองใช้โฟลว์ข้อมูลต่างๆ ที่เกี่ยวข้องกับฟังก์ชันระบบคลาวด์ ประเมินการเปลี่ยนแปลงกฎความปลอดภัย ตรวจสอบบันทึกเพื่อยืนยันประสิทธิภาพของบริการแบ็คเอนด์ และอื่นๆ จากนั้น ถ้าคุณต้องการเริ่มต้นใหม่ เพียงแค่ล้างฐานข้อมูลของคุณ และเริ่มต้นใหม่ด้วยแนวคิดการออกแบบใหม่
ทั้งหมดนี้พร้อมใช้งานเมื่อคุณเริ่ม Local Emulator Suite ด้วย:
firebase emulators:start
ในการสร้างต้นแบบแอปสมมุติของเรา ให้ตั้งค่าและทดสอบฟังก์ชันระบบคลาวด์พื้นฐานเพื่อแก้ไขรายการข้อความในฐานข้อมูล แล้วสร้างและเติมฐานข้อมูลนั้นใน Emulator Suite UI เพื่อทริกเกอร์
- สร้างฟังก์ชันระบบคลาวด์ที่ทริกเกอร์โดยการเขียนฐานข้อมูลโดยแก้ไขไฟล์
functions/index.js
ในไดเรกทอรีโครงการของคุณ แทนที่เนื้อหาของไฟล์ที่มีอยู่ด้วยตัวอย่างต่อไปนี้ ฟังก์ชันนี้จะคอยรับฟังการเปลี่ยนแปลงของโหนดในลำดับชั้นของmessages
แปลงเนื้อหาของคุณสมบัติoriginal
ของโหนดเป็นตัวพิมพ์ใหญ่ และเก็บผลลัพธ์ไว้ในคุณสมบัติuppercase
ของโหนดนั้น - เปิด Local Emulator Suite ด้วย
firebase emulators:start
Cloud Functions และโปรแกรมจำลองฐานข้อมูลเริ่มทำงาน กำหนดค่าให้ทำงานร่วมกันโดยอัตโนมัติ - ดู UI ในเบราว์เซอร์ของคุณที่
http://localhost:4000
พอร์ต 4000 เป็นค่าเริ่มต้นสำหรับ UI แต่ให้ตรวจสอบข้อความเทอร์มินัลที่ส่งออกโดย Firebase CLI สังเกตสถานะของอีมูเลเตอร์ที่มี ในกรณีของเรา โปรแกรมจำลอง Cloud Functions และ Realtime Database จะทำงาน
- ใน UI บนแท็บ Realtime Database ใช้ตัวควบคุมตัวแก้ไขเนื้อหาฐานข้อมูลเพื่อสร้างชุดของโหนดที่มีโหนด
messages
ที่มีโหนดmessage1
ในทางกลับกันจะมีโหนดที่มีการตั้งค่าคีย์เป็นoriginal
และตั้งค่าให้test
สิ่งนี้จะกระตุ้นการทำงานของระบบคลาวด์ของเรา สังเกตว่าคุณสมบัติuppercase
ใหม่จะปรากฏขึ้นในไม่ช้า โดยมีค่าTEST
- ตรวจสอบแท็บ บันทึก เพื่อยืนยันว่าฟังก์ชันของคุณไม่มีข้อผิดพลาดในขณะที่อัปเดตฐานข้อมูล
const functions = require('firebase-functions'); exports.makeUppercase = functions.database.ref('/messages/{pushId}/original') .onCreate((snapshot, context) => { const original = snapshot.val(); console.log('Uppercasing', context.params.pushId, original); const uppercase = original.toUpperCase(); return snapshot.ref.parent.child('uppercase').set(uppercase); });
คุณสามารถทำซ้ำระหว่างโค้ดฟังก์ชันระบบคลาวด์และการแก้ไขฐานข้อมูลแบบโต้ตอบได้อย่างง่ายดาย จนกว่าคุณจะได้รับโฟลว์ข้อมูลที่ต้องการ โดยไม่ต้องแตะรหัสการเข้าถึงฐานข้อมูลในแอป การคอมไพล์ใหม่ และรันชุดทดสอบซ้ำ
เชื่อมต่อแอพของคุณกับอีมูเลเตอร์
เมื่อคุณก้าวหน้าไปด้วยดีกับการสร้างต้นแบบเชิงโต้ตอบและได้ตกลงกับการออกแบบแล้ว คุณก็พร้อมที่จะเพิ่มรหัสการเข้าถึงฐานข้อมูลลงในแอปของคุณโดยใช้ SDK ที่เหมาะสม คุณจะใช้แท็บฐานข้อมูลต่อไป และสำหรับฟังก์ชันต่างๆ แท็บ บันทึก ใน Emulator Suite UI เพื่อยืนยันว่าการทำงานของแอปนั้นถูกต้อง
โปรดจำไว้ว่า Local Emulator Suite เป็นเครื่องมือในการพัฒนาในพื้นที่ การเขียนไปยังฐานข้อมูลการผลิตของคุณจะไม่ทริกเกอร์ฟังก์ชันที่คุณกำลังสร้างต้นแบบในเครื่อง
หากต้องการสลับไปใช้ให้แอปของคุณเขียนฐานข้อมูล คุณจะต้องชี้คลาสการทดสอบหรือการกำหนดค่าในแอปไปที่โปรแกรมจำลองฐานข้อมูลเรียลไทม์
Android
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. FirebaseDatabase database = FirebaseDatabase.getInstance(); database.useEmulator("10.0.2.2", 9000);
Swift
// In almost all cases the ns (namespace) is your project ID. let db = Database.database(url:"http://localhost:9000?ns=YOUR_DATABASE_NAMESPACE")
Web version 9
import { getDatabase, connectDatabaseEmulator } from "firebase/database"; const db = getDatabase(); if (location.hostname === "localhost") { // Point to the RTDB emulator running on localhost. connectDatabaseEmulator(db, "localhost", 9000); }
Web version 8
var db = firebase.database(); if (location.hostname === "localhost") { // Point to the RTDB emulator running on localhost. db.useEmulator("localhost", 9000); }
ทำให้การทดสอบของคุณเป็นแบบอัตโนมัติด้วยสคริปต์ที่กำหนดเอง
ตอนนี้สำหรับขั้นตอนเวิร์กโฟลว์โดยรวมล่าสุด เมื่อคุณสร้างต้นแบบฟีเจอร์ของคุณในแอปแล้วและดูเหมือนว่าจะมีแนวโน้มที่ดีบนทุกแพลตฟอร์มของคุณ คุณสามารถเปลี่ยนไปใช้การใช้งานและการทดสอบขั้นสุดท้ายได้ สำหรับการทดสอบหน่วยและเวิร์กโฟลว์ CI คุณสามารถเริ่มต้นโปรแกรมจำลอง เรียกใช้การทดสอบสคริปต์ และปิดโปรแกรมจำลองในการเรียกครั้งเดียวด้วยคำสั่ง exec
:
firebase emulators:exec "./testdir/test.sh"
สำรวจอีมูเลเตอร์แต่ละตัวในเชิงลึกมากขึ้น
ตอนนี้คุณได้เห็นหน้าตาของเวิร์กโฟลว์พื้นฐานฝั่งไคลเอ็นต์แล้ว คุณสามารถดำเนินการต่อด้วยรายละเอียดเกี่ยวกับอีมูเลเตอร์แต่ละตัวใน Suite รวมถึงวิธีใช้งานสำหรับการพัฒนาแอปฝั่งเซิร์ฟเวอร์:
- เพิ่มโปรแกรมจำลองการตรวจสอบสิทธิ์ให้กับเวิร์กโฟลว์การสร้างต้นแบบของคุณ
- เรียนรู้เกี่ยวกับคุณสมบัติโปรแกรมจำลองฐานข้อมูลเรียลไทม์ในเชิงลึก
- เรียนรู้เกี่ยวกับฟีเจอร์ตัวจำลอง Cloud Storage แบบเจาะลึก
- เรียนรู้เกี่ยวกับฟีเจอร์ตัวจำลอง Cloud Firestore แบบเจาะลึก
- เชื่อมต่อแอปของคุณกับโปรแกรมจำลอง Cloud Functions
- ประเมิน Firebase Extensions พร้อมๆ กับลดต้นทุนการเรียกเก็บเงินด้วย Extensions emulator
อะไรต่อไป?
อย่าลืมอ่านหัวข้อที่เกี่ยวข้องกับอีมูเลเตอร์บางตัวที่ลิงก์ด้านบน แล้ว:
- สำหรับชุดวิดีโอที่ได้รับการดูแลจัดการและตัวอย่างวิธีการโดยละเอียด ให้ทำตาม เพลย์ลิสต์การฝึกอบรม Firebase Emulators
- ตรวจสอบกรณีการใช้งานขั้นสูงที่เกี่ยวข้องกับการทดสอบกฎความปลอดภัยและ Firebase Test SDK: ทดสอบกฎความปลอดภัย (Cloud Firestore) ทดสอบกฎความปลอดภัย (ฐานข้อมูลเรียลไทม์) และ ทดสอบกฎความปลอดภัย (ที่เก็บข้อมูลบนคลาวด์)