Trước khi sử dụng Firebase Local Emulator Suite, hãy đảm bảo bạn đã tạo dự án Firebase, thiết lập môi trường phát triển, đồng thời chọn và cài đặt Firebase SDK cho nền tảng của bạn theo hướng dẫn Bắt đầu với Các chủ đề Firebase cho nền tảng của bạn: Apple, Android hoặc Web.
Nguyên mẫu và thử nghiệm
Local Emulator Suite chứa một số trình mô phỏng sản phẩm, như mô tả trong Giới thiệu về Firebase Local Emulator Suite. Bạn có thể tạo nguyên mẫu và thử nghiệm bằng từng trình mô phỏng cũng như kết hợp trình mô phỏng (nếu bạn thấy phù hợp) tương ứng với những sản phẩm Firebase mà bạn đang sử dụng trong giai đoạn phát hành chính thức.
![Tương tác giữa cơ sở dữ liệu Firebase và trình mô phỏng hàm](https://firebase.google.cn/docs/emulator-suite/images/emulator-suite-helloworld.png?authuser=9&hl=vi)
Đối với chủ đề này, để giới thiệu quy trình công việc Local Emulator Suite, giả sử bạn đang làm việc trên một ứng dụng sử dụng kết hợp các sản phẩm thông thường: một Firebase các hàm cơ sở dữ liệu và đám mây được kích hoạt bởi các thao tác trên cơ sở dữ liệu đó.
Sau khi bạn khởi chạy cục bộ dự án Firebase, chu kỳ phát triển sử dụng Local Emulator Suite thường sẽ có 3 bước:
Nguyên mẫu có tính tương tác với trình mô phỏng và Emulator Suite UI.
Nếu bạn đang sử dụng trình mô phỏng cơ sở dữ liệu hoặc trình mô phỏng Cloud Functions, thực hiện bước một lần để kết nối ứng dụng với trình mô phỏng.
Tự động hoá quy trình kiểm thử bằng trình mô phỏng và tập lệnh tuỳ chỉnh.
Khởi chạy cục bộ dự án Firebase
Đảm bảo bạn cài đặt CLI hoặc cập nhật lên phiên bản mới nhất.
curl -sL firebase.tools | bash
Nếu bạn chưa thực hiện thao tác này, hãy khởi chạy thư mục đang làm việc dưới dạng Dự án Firebase, bằng cách làm theo các lời nhắc trên màn hình để cho biết bạn đang sử dụng Cloud Functions và Cloud Firestore hoặc Realtime Database:
firebase init
Thư mục dự án của bạn bây giờ sẽ chứa các tệp cấu hình Firebase,
Tệp định nghĩa Firebase Security Rules cho cơ sở dữ liệu, thư mục functions
chứa mã hàm đám mây và các tệp hỗ trợ khác.
Tạo nguyên mẫu có tính tương tác
Local Emulator Suite được thiết kế để cho phép bạn nhanh chóng tạo nguyên mẫu cho các tính năng mới, và giao diện người dùng tích hợp sẵn của Suite là một trong những nguyên mẫu hữu ích nhất và các công cụ lập mô hình tuỳ chỉnh. Điều này giống như khi bảng điều khiển Firebase chạy cục bộ.
Bằng cách sử dụng Emulator Suite UI, bạn có thể lặp lại thiết kế của cơ sở dữ liệu. Hãy thử các luồng dữ liệu khác nhau liên quan đến các chức năng đám mây, đánh giá các thay đổi về Quy tắc bảo mật, kiểm tra nhật ký để xác nhận hiệu suất của các dịch vụ phụ trợ và làm nhiều việc khác. Sau đó: nếu muốn bắt đầu lại, bạn chỉ cần xoá cơ sở dữ liệu rồi bắt đầu lại từ đầu với một ý tưởng thiết kế mới.
Tất cả đều có sẵn khi bạn bắt đầu Local Emulator Suite bằng:
firebase emulators:start
Để nguyên mẫu ứng dụng giả định của chúng ta, hãy thiết lập và kiểm thử một chức năng cơ bản của đám mây để sửa đổi các mục nhập văn bản trong cơ sở dữ liệu, đồng thời tạo và điền sẵn cơ sở dữ liệu đó trong Emulator Suite UI để kích hoạt lớp đó.
- Tạo một hàm đám mây được kích hoạt bởi các lượt ghi cơ sở dữ liệu bằng cách chỉnh sửa
functions/index.js
trong thư mục dự án của bạn. Thay thế nội dung của tệp hiện tại bằng đoạn mã sau. Hàm này theo dõi những thay đổi đối với các nút trong hệ phân cấpmessages
, chuyển đổi nội dung thuộc tínhoriginal
của nút thành viết hoa và lưu trữ kết quả tronguppercase
của nút đó thuộc tính này. - Chạy Local Emulator Suite bằng
firebase emulators:start
Cloud Functions và cơ sở dữ liệu trình mô phỏng khởi động, được tự động định cấu hình để tương tác. - Xem giao diện người dùng trên trình duyệt của bạn tại
http://localhost:4000
. Cổng 4000 là cổng mặc định cho giao diện người dùng, nhưng hãy kiểm tra đầu ra thông báo của thiết bị đầu cuối bằng Giao diện dòng lệnh (CLI) Firebase. Hãy lưu ý trạng thái của các trình mô phỏng hiện có. Trong trường hợp của chúng ta, trình mô phỏng Cloud Functions và Realtime Database sẽ chạy.
- Trong giao diện người dùng, trên thẻ Cơ sở dữ liệu theo thời gian thực, hãy sử dụng nội dung cơ sở dữ liệu
các tuỳ chọn điều khiển của trình chỉnh sửa để tạo một nhóm các nút có nút
messages
chứa một nútmessage1
, đến lượt chứa một nút có khoá được đặt thànhoriginal
và giá trị được đặt thànhtest
. Chiến dịch này kích hoạt chức năng đám mây của chúng tôi. Lưu ý rằng mộtuppercase
mới tài sản đó sẽ sớm xuất hiện, với giá trịTEST
.
- Kiểm tra thẻ Logs (Nhật ký) để xác nhận rằng hàm của bạn không chạy lỗi inot khi cập nhật cơ sở dữ liệu.
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); });
Bạn có thể dễ dàng lặp lại giữa mã hàm đám mây và mã tương tác chỉnh sửa cơ sở dữ liệu cho đến khi bạn nhận được luồng dữ liệu bạn đang tìm kiếm mà không cần chạm vào mã truy cập cơ sở dữ liệu trong ứng dụng, biên dịch lại và chạy lại bộ kiểm thử.
Kết nối ứng dụng của bạn với trình mô phỏng
Khi bạn đã có tiến bộ tốt với việc tạo nguyên mẫu tương tác và đã chọn bạn đã sẵn sàng thêm mã truy cập cơ sở dữ liệu vào ứng dụng của mình bằng cách sử dụng SDK phù hợp. Bạn sẽ tiếp tục sử dụng thẻ cơ sở dữ liệu và đối với các hàm, Thẻ Logs (Nhật ký) trong Emulator Suite UI để xác nhận hành vi của ứng dụng là chính xác.
Hãy nhớ rằng Local Emulator Suite là một công cụ phát triển cục bộ. Hoạt động ghi vào cơ sở dữ liệu sản xuất của bạn sẽ không kích hoạt các hàm mà bạn đang tạo nguyên mẫu cục bộ.
Để chuyển sang việc ứng dụng ghi vào cơ sở dữ liệu, bạn cần có để trỏ lớp kiểm thử hoặc cấu hình trong ứng dụng của bạn đến trình mô phỏng Realtime Database.
Kotlin+KTX
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. val database = Firebase.database database.useEmulator("10.0.2.2", 9000)
Java
// 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://127.0.0.1:9000?ns=YOUR_DATABASE_NAMESPACE")
Web
import { getDatabase, connectDatabaseEmulator } from "firebase/database"; const db = getDatabase(); if (location.hostname === "localhost") { // Point to the RTDB emulator running on localhost. connectDatabaseEmulator(db, "127.0.0.1", 9000); }
Web
var db = firebase.database(); if (location.hostname === "localhost") { // Point to the RTDB emulator running on localhost. db.useEmulator("127.0.0.1", 9000); }
Tự động hoá quy trình kiểm thử bằng tập lệnh tuỳ chỉnh
Giờ là bước cuối cùng trong quy trình làm việc. Sau khi bạn có nguyên mẫu cho tính năng của mình
trong ứng dụng và có vẻ đầy hứa hẹn trên tất cả các nền tảng của mình, bạn có thể chuyển sang
trong quá trình triển khai và kiểm thử. Đối với quy trình kiểm thử đơn vị và quy trình CI, bạn có thể khởi động
trình mô phỏng, chạy kiểm thử theo tập lệnh và tắt trình mô phỏng chỉ trong một lệnh gọi duy nhất với
lệnh exec
:
firebase emulators:exec "./testdir/test.sh"
Tìm hiểu kỹ hơn về từng trình mô phỏng
Giờ thì bạn đã biết quy trình làm việc phía máy khách cơ bản trông như thế nào, bạn có thể tiếp tục cung cấp thông tin chi tiết về từng trình mô phỏng trong Suite, bao gồm cách để sử dụng chúng cho việc phát triển ứng dụng phía máy chủ:
- Thêm trình mô phỏng Authentication vào quy trình tạo nguyên mẫu
- Tìm hiểu chuyên sâu về các tính năng của trình mô phỏng Realtime Database
- Tìm hiểu chuyên sâu về các tính năng của trình mô phỏng Cloud Storage for Firebase
- Tìm hiểu chuyên sâu về các tính năng của trình mô phỏng Cloud Firestore
- Kết nối ứng dụng của bạn với trình mô phỏng Cloud Functions
- Đánh giá Firebase Extensions và giảm thiểu chi phí thanh toán bằng trình mô phỏng Extensions
Tiếp theo là gì?
Hãy nhớ đọc các chủ đề liên quan đến trình mô phỏng cụ thể được liên kết ở trên. Thì:
- Để xem một loạt video được tuyển chọn và ví dụ chi tiết về cách thực hiện, hãy theo dõi Danh sách phát đào tạo về trình mô phỏng Firebase.
- Điều tra các trường hợp sử dụng nâng cao liên quan đến việc kiểm thử Quy tắc bảo mật và SDK thử nghiệm Firebase: Thử nghiệm quy tắc bảo mật (Cloud Firestore) , Kiểm thử Quy tắc bảo mật (Realtime Database) và Kiểm thử Quy tắc bảo mật (Cloud Storage for Firebase).