Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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 chức năng nền được kích hoạt từ Xác thực, Cơ sở dữ liệu thời gian thực, Cloud Firestore 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 hoặc cao hơn.
  • firebase-functions phiên bản 3.0.0 hoặc cao hơ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 kiểm tra chức năng của bạn để tương tác với Google API hoặc các API căn cứ hỏa lực khác thông qua các căn cứ hỏa lực SDK quản trị , bạn có thể cần phải thiết lập thông tin quản trị.

  • Đám mây FireStore và Realtime trigger Cơ sở dữ liệu đã có đủ thông tin, và không đòi hỏi cài đặt 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 các chức năng bao hoặc 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ở panel Accounts Dịch vụ của Google Cloud Console.
  2. Hãy chắc chắn rằng App Engine tài khoản dịch vụ mặc định được chọn, và sử dụng menu tùy chọn ở bên phải để chọn Tạo chủ chốt.
  3. Khi được nhắc, chọn JSON cho các loại chìa 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, kiểm tra chức năng của bạn có thể truy cập vào căn cứ hỏa lực và Google API bằng cách sử dụng SDK quản trị . Ví dụ, khi kiểm tra một kích hoạt xác thực, chức năng 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 chức năng tùy chỉnh các biến cấu hình, đầu tiên hãy chạy lệnh để có được cấu hình tùy chỉnh của bạn (chạy này trong functions thư mục) trong môi trường địa phương 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 các chức năng của Cloud giả lập, sử dụng emulators:start lệnh:

firebase emulators:start

Các emulators:start lệnh sẽ bắt đầu giả lập cho Cloud Chức năng, Cloud FireStore, Cơ sở dữ liệu thời gian thực, và căn cứ hỏa lực Hosting dựa trên các sản phẩm bạn đã khởi tạo trong dự án địa phương của bạn sử dụng firebase init . Nếu bạn muốn bắt đầu một giả lập đặc biệt, sử dụng --only lá cờ:

firebase emulators:start --only functions

Nếu bạn muốn chạy một bộ kiểm tra hoặc kiểm tra kịch bản sau khi giả lập đã bắt đầu, sử dụng emulators:exec lệnh:

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 các hoạt động nguyên mẫu và thử nghiệm của bạn liên quan đến các chức năng phụ trợ callable , tương tác cấu hình với chức năng đám mây cho căn cứ hỏa lực giả lập như thế này:

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);
iOS - Swift
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

Phiên bản web 9

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

Phiên bản web 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ụ đơn giản helloWorld chức năng với cổng máy chủ mặc định và khu vực sẽ được phục vụ tại địa chỉ:

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ộ trình 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ó Chức năng đám mây sử dụng SDK quản trị Firebase để ghi vào Cloud Firestore, thì những 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 Đám mây khác được kích hoạt bởi những lần ghi đó, chúng sẽ được chạy trong trình mô phỏng Chức năng Đám mây.

Lưu trữ Firebase

Nếu bạn đang sử dụng đám mây Chức năng để tạo ra nội dung động cho căn cứ hỏa lực Hosting , firebase emulators:start sử dụng các chức năng HTTP địa phương của bạn như các proxy để 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ó sẽ hiển thị tất cả các đầu ra từ console.log() , console.info() , console.error() , và console.warn() báo cáo bên trong các chức năng của mình.

Bước tiếp theo

Đối với một ví dụ đầy đủ của việc sử dụng bộ ứng dụng giả lập căn cứ hỏa lực, xem mẫu QuickStart thử nghiệm .