获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Chạy các chức năng cục bộ

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ản 8.0.0 trở lên.
  • firebase-functions phiên bản 3.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 Lời 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 hàm Cloud 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:

  1. Mở ngăn Tài khoản dịch vụ của Google Cloud Console.
  2. Đả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 .
  3. Khi được nhắc, hãy chọn JSON cho loại khóa và nhấp vào Tạo .
  4. Đặ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 quản trị. 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);

Công cụ ứ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 sửa đổi tài nguyên back-end bằng giao diện người dùng Emulator Suite hoặc bằng cách 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.

Kiểm tra trình xử lý cho các sự kiện tùy chỉnh do Tiện ích mở rộng phát ra

Đối với các chức năng bạn triển khai để xử lý các sự kiện tùy chỉnh của Tiện ích mở rộng Firebase với Chức năng đám mây v2, trình mô phỏng Chức năng đám mây kết hợp với trình mô phỏng Eventarc để hỗ trợ trình kích hoạt Eventarc .

Để kiểm tra trình xử lý sự kiện tùy chỉnh cho các tiện ích mở rộng phát ra sự kiện, bạn phải cài đặt Trình giả lập Chức năng Đám mây và Eventarc.

Thời gian chạy Chức năng đám mây đặt biến môi trường EVENTARC_EMULATOR thành localhost:9299 trong quy trình hiện tại nếu trình giả lập Eventarc đang chạy. SDK quản trị Firebase tự động kết nối với trình mô phỏng Eventarc khi biến môi trường EVENTARC_EMULATOR được đặt. Bạn có thể sửa đổi cổng mặc định như đã thảo luận trong phần Cấu hình bộ mô phỏng cục bộ .

Khi các biến môi trường được định cấu hình đúng cách, SDK quản trị Firebase sẽ tự động gửi các sự kiện đến trình mô phỏng Eventarc. Đổi lại, trình giả lập Eventarc gọi lại trình giả lập Chức năng đám mây để kích hoạt bất kỳ trình xử lý đã đăng ký nào.

Bạn có thể kiểm tra Nhật ký các chức năng trong Giao diện người dùng Bộ giả lập để biết chi tiết về việc thực thi trình xử lý.

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 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 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 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()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 .