Firebase CLI bao gồm trình giả lập Chức năng đám mây có thể mô phỏng các loại chức năng sau:
- Các chức năng HTTPS
- Các chức năng có thể gọi được
- Các chức năng nền được kích hoạt từ Xác thực Firebase, Cơ sở dữ liệu thời gian thực, Cloud Firestore, Cloud Storage và Cloud Pub / Sub.
Bạn có thể chạy các chức năng cục bộ để kiểm tra chúng trước khi triển khai vào sản xuất.
Cài đặt Firebase CLI
Để sử dụng trình giả lập Chức năng đám mây, trước tiên hãy cài đặt Firebase CLI:
npm install -g firebase-tools
Để sử dụng trình giả lập cục bộ, Chức năng đám mây của bạn phải phụ thuộc vào:
-
firebase-admin
phiên bản8.0.0
trở lên. -
firebase-functions
phiên bản3.0.0
trở lên.
Thiết lập thông tin đăng nhập quản trị viên (tùy chọn)
Nếu bạn muốn các bài kiểm tra chức năng của mình tương tác với Google API hoặc các API Firebase khác thông qua SDK quản trị Firebase , bạn có thể cần thiết lập thông tin đăng nhập quản trị viên.
- Trình kích hoạt Cloud Firestore và Cơ sở dữ liệu thời gian thực đã có đủ thông tin đăng nhập và không yêu cầu thiết lập bổ sung.
- Tất cả các API khác, bao gồm các API Firebase như Xác thực và FCM hoặc các API của Google như Dịch thuật đám mây hoặc Giọng nói trên đám mây, đều yêu cầu các bước thiết lập được mô tả trong phần này. Điều này áp dụng cho dù bạn đang sử dụng trình bao gồm Chức năng đám mây hay
firebase emulators:start
.
Để thiết lập thông tin đăng nhập quản trị viên cho các chức năng được mô phỏng:
- Mở ngăn Tài khoản dịch vụ của Google Cloud Console.
- Đảm bảo rằng tài khoản dịch vụ mặc định của App Engine được chọn và sử dụng menu tùy chọn ở bên phải để chọn Tạo khóa .
- Khi được nhắc, hãy chọn JSON cho loại khóa và nhấp vào Tạo .
Đặt thông tin đăng nhập mặc định của Google của bạn để trỏ đến khóa đã tải xuống:
Unix
export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json" firebase emulators:start
các cửa sổ
set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json firebase emulators:start
Sau khi hoàn thành các bước này, các bài kiểm tra chức năng của bạn có thể truy cập vào các API của Firebase và Google bằng SDK dành cho quản trị viên. Ví dụ: khi kiểm tra trình kích hoạt Xác thực, hàm được mô phỏng có thể gọi admin.auth().getUserByEmail(email)
.
Thiết lập cấu hình chức năng (tùy chọn)
Nếu bạn đang sử dụng các biến cấu hình hàm tùy chỉnh, trước tiên hãy chạy lệnh để tải cấu hình tùy chỉnh của bạn (chạy lệnh này trong thư mục functions
) trong môi trường cục bộ của bạn:
firebase functions:config:get > .runtimeconfig.json # If using Windows PowerShell, replace the above with: # firebase functions:config:get | ac .runtimeconfig.json
Chạy bộ giả lập
Để chạy trình giả lập Chức năng đám mây, hãy sử dụng emulators:start
:
firebase emulators:start
Trình emulators:start
sẽ khởi động trình giả lập cho Chức năng đám mây, Cloud Firestore, Cơ sở dữ liệu thời gian thực và Lưu trữ Firebase dựa trên các sản phẩm bạn đã khởi tạo trong dự án cục bộ của mình bằng cách sử dụng firebase init
. Nếu bạn muốn khởi động một trình giả lập cụ thể, hãy sử dụng cờ --only
:
firebase emulators:start --only functions
Nếu bạn muốn chạy bộ thử nghiệm hoặc tập lệnh thử nghiệm sau khi trình giả lập đã khởi động, hãy sử dụng lệnh emulators:exec
:
firebase emulators:exec "./my-test.sh"
Tạo công cụ cho ứng dụng của bạn để nói chuyện với trình giả lập
Để thiết bị ứng dụng của bạn tương tác với trình giả lập, bạn có thể cần thực hiện một số cấu hình bổ sung.
Công cụ ứng dụng của bạn cho các chức năng có thể gọi
Nếu nguyên mẫu và hoạt động thử nghiệm của bạn liên quan đến các chức năng phụ trợ có thể gọi, hãy định cấu hình tương tác với Chức năng đám mây cho trình mô phỏng Firebase như sau:
Android
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. FirebaseFunctions functions = FirebaseFunctions.getInstance(); functions.useEmulator("10.0.2.2", 5001);
Nhanh
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")
Web version 9
import { getApp } from "firebase/app"; import { getFunctions, connectFunctionsEmulator } from "firebase/functions"; const functions = getFunctions(getApp()); connectFunctionsEmulator(functions, "localhost", 5001);
Web version 8
firebase.functions().useEmulator("localhost", 5001);
Tạo công cụ cho ứng dụng của bạn để mô phỏng các chức năng HTTPS
Mỗi hàm HTTPS trong mã của bạn sẽ được phân phát từ trình mô phỏng cục bộ bằng cách sử dụng định dạng URL sau:
http:// $HOST : $PORT / $PROJECT / $REGION / $NAME
Ví dụ, một hàm helloWorld
đơn giản với cổng và khu vực máy chủ mặc định sẽ được phục vụ tại:
https://localhost:5001/ $PROJECT /us-central1/helloWorld
Tạo công cụ cho ứng dụng của bạn để mô phỏng các chức năng được kích hoạt trong nền
Trình giả lập Chức năng đám mây hỗ trợ các chức năng được kích hoạt trong nền từ các nguồn sau:
- Trình giả lập cơ sở dữ liệu thời gian thực
- Trình giả lập Cloud Firestore
- Trình giả lập xác thực
- Trình giả lập Pub / Sub
Để kích hoạt các sự kiện nền, hãy kết nối ứng dụng hoặc mã thử nghiệm của bạn với trình giả lập bằng SDK cho nền tảng của bạn.
Tương tác với các dịch vụ khác
Bộ giả lập bao gồm nhiều trình giả lập, cho phép kiểm tra các tương tác giữa các sản phẩm.
Cloud Firestore
Nếu bạn có các chức năng sử dụng SDK quản trị Firebase để ghi vào Cloud Firestore, các ghi này sẽ được gửi tới trình giả lập Cloud Firestore nếu nó đang chạy. Nếu các chức năng khác được kích hoạt bởi những lần ghi đó, chúng sẽ được chạy trong trình giả lập Chức năng đám mây.
Lưu trữ đám mây
Nếu bạn có các chức năng sử dụng SDK quản trị Firebase (phiên bản 9.7.0 trở lên) để ghi vào Cloud Storage, thì các ghi này sẽ được gửi tới trình giả lập Cloud Storage nếu nó đang chạy. Nếu các chức năng khác được kích hoạt bởi những lần ghi đó, chúng sẽ được chạy trong trình giả lập Chức năng đám mây.
Xác thực Firebase
Nếu bạn có các chức năng sử dụng SDK quản trị Firebase (phiên bản 9.3.0 trở lên) để ghi vào Xác thực Firebase, các ghi này sẽ được gửi tới trình giả lập Auth nếu nó đang chạy. Nếu các chức năng khác được kích hoạt bởi những lần ghi đó, chúng sẽ được chạy trong trình giả lập Chức năng đám mây.
Lưu trữ Firebase
Nếu bạn đang sử dụng Chức năng đám mây để tạo nội dung động cho Lưu trữ Firebase , firebase emulators:start
sử dụng các chức năng HTTP cục bộ của bạn làm proxy cho lưu trữ.
Ghi nhật ký
Trình giả lập truyền nhật ký từ các chức năng của bạn đến cửa sổ đầu cuối nơi chúng chạy. Nó hiển thị tất cả đầu ra từ các câu lệnh console.log()
, console.info()
, console.error()
và console.warn()
bên trong các hàm của bạn.
Bước tiếp theo
Để có ví dụ đầy đủ về việc sử dụng bộ trình mô phỏng Firebase, hãy xem mẫu bắt đầu nhanh thử nghiệm .