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

Kết nối ứng dụng của bạn và bắt đầu tạo mẫu

Trước khi bạn nhảy vào với căn cứ hỏa lực địa phương Emulator Suite, hãy chắc chắn bạn đã tạo một dự án căn cứ hỏa lực, thiết lập môi trường phát triển, và được lựa chọn và cài đặt căn cứ hỏa lực SDK cho nền tảng của bạn theo Bắt đầu với chủ đề căn cứ hỏa lực cho nền tảng của bạn: iOS , Android hoặc Web .

Nguyên mẫu và thử nghiệm

Các địa phương Emulator Suite chứa một số giả lập sản phẩm, như mô tả trong Giới thiệu về căn cứ hỏa lực địa phương Emulator Suite . Bạn có thể tạo mẫu và thử nghiệm với các trình giả lập riêng lẻ cũng như kết hợp các trình mô phỏng, nếu bạn thấy phù hợp, tương ứng với sản phẩm Firebase bạn đang sử dụng trong quá trình sản xuất.

Tương tác giữa dstabase Firebase và trình giả lập chức năng
Cơ sở dữ liệu và chức năng của Cloud giả lập như một phần của toàn bộ cục bộ Emulator Suite .

Đối với chủ đề này, để giới thiệu quy trình làm việc của Local Emulator Suite, hãy 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 điển hình: cơ sở dữ liệu Firebase và các chức năng đám mây được kích hoạt bởi các hoạt động trên cơ sở dữ liệu đó.

Sau khi bạn khởi tạo cục bộ dự án Firebase của mình, chu trình phát triển sử dụng Local Emulator Suite thường sẽ có ba bước:

  1. Nguyên mẫu có các tính năng tương tác với trình giả lập và giao diện người dùng của Emulator Suite.

  2. Nếu bạn đang sử dụng trình giả lập cơ sở dữ liệu hoặc trình giả lập Chức năng đám mây, hãy thực hiện bước một lần để kết nối ứng dụng của bạn với trình giả lập.

  3. Tự động hóa các bài kiểm tra của bạn bằng trình giả lập và tập lệnh tùy chỉnh.

Khởi tạo cục bộ dự án Firebase

Hãy chắc chắn rằng bạn cài đặt CLI hoặc cập nhật lên phiên bản mới nhất của nó .

curl -sL firebase.tools | bash

Nếu bạn chưa làm như vậy, khởi tạo thư mục làm việc hiện hành như một dự án căn cứ hỏa lực, sau khi trên màn hình hướng dẫn để xác định bạn đang sử dụng đám mây Chức năng và một trong hai đám mây FireStore hoặc Realtime Cơ sở dữ liệu:

firebase init

Thư mục dự án của bạn bây giờ sẽ chứa các file cấu hình căn cứ hỏa lực, một file định nghĩa Quy định an toàn căn cứ hỏa lực cho các cơ sở dữ liệu, một functions có chứa thư mục mây chức năng mã, và các tập tin hỗ trợ khác.

Nguyên mẫu 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 các tính năng mới và giao diện người dùng tích hợp của Suite là một trong những công cụ tạo mẫu hữu ích nhất của nó. Nó hơi giống như để bảng điều khiển Firebase chạy cục bộ.

Sử dụng Giao diện người dùng của Emulator Suite, bạn có thể lặp lại thiết kế của cơ sở dữ liệu, 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 của Quy tắc bảo mật, kiểm tra nhật ký để xác nhận các dịch vụ back-end của bạn đang hoạt động như thế nào và hơn thế nữa. Sau đó, nếu bạn muốn bắt đầu lại, chỉ cần xóa cơ sở dữ liệu của bạn và bắt đầu mới với một ý tưởng thiết kế mới.

Tất cả đều có sẵn khi bạn khởi động Local Emulator Suite với:

firebase emulators:start

Để tạo nguyên mẫu ứng dụng giả định của chúng tôi, hãy thiết lập và kiểm tra một chức năng đám mây cơ bản để sửa đổi các mục nhập văn bản trong cơ sở dữ liệu và cả hai tạo và điền cơ sở dữ liệu đó trong Giao diện người dùng Bộ giả lập để kích hoạt nó.

  1. Tạo một chức năng điện toán đám mây kích hoạt bởi ghi cơ sở dữ liệu bằng cách chỉnh sửa các functions/index.js tập tin trong thư mục dự án của bạn. Thay thế nội dung của tệp hiện có bằng đoạn mã sau. Chức năng này lắng nghe cho các thay đổi tài liệu trong messages thu thập, chuyển đổi các nội dung của một tài liệu original lĩnh vực thành chữ hoa, và lưu trữ các kết quả trong của tài liệu mà uppercase lĩnh vực.
  2.   const functions = require('firebase-functions');
    
      exports.makeUppercase = functions.firestore.document('/messages/{documentId}')
          .onCreate((snap, context) => {
            const original = snap.data().original;
            console.log('Uppercasing', context.params.documentId, original);
            const uppercase = original.toUpperCase();
            return snap.ref.set({uppercase}, {merge: true});
          });
      
  3. Khởi động địa phương Emulator Suite với firebase emulators:start . Chức năng đám mây và trình giả lập cơ sở dữ liệu khởi động, tự động được định cấu hình để hoạt động tương thích.
  4. Xem giao diện người dùng trong trình duyệt của bạn tại http://localhost:4000 . Cổng 4000 là mặc định cho giao diện người dùng, nhưng hãy kiểm tra thông báo đầu cuối do Firebase CLI đầu ra. Lưu ý trạng thái của trình giả lập có sẵn. Trong trường hợp của chúng tôi, trình giả lập Cloud Functions và Cloud Firestore sẽ chạy.
    Hình ảnh của tôi
  5. Trong giao diện người dùng, trên tab FireStore, trên dữ liệu phụ tab, bấm vào bộ sưu tập Start và làm theo hướng dẫn để tạo ra một tài liệu mới trong một messages thu thập, với fieldname original và giá trị test . Điều này kích hoạt chức năng đám mây của chúng tôi. Quan sát rằng một mới uppercase lĩnh vực xuất hiện một thời gian ngắn, dân cư với chuỗi "TEST".
    Hình ảnh của tôiHình ảnh của tôi
  6. Trên FireStore> tab yêu cầu, kiểm tra yêu cầu thực hiện để cơ sở dữ liệu mô phòng của bạn, bao gồm tất cả các đánh giá Security Rules căn cứ hỏa lực thực hiện như một phần của việc thực hiện những yêu cầu đó.
  7. Kiểm tra tab Logs để xác nhận chức năng của bạn không chạy vào lỗi vì nó được cập nhật cơ sở dữ liệu.

Bạn có thể dễ dàng lặp lại giữa mã chức năng đám mây của mình và các chỉnh sửa cơ sở dữ liệu tương tác cho đến khi bạn nhận được luồng dữ liệu mà 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 các bộ thử nghiệm.

Kết nối ứng dụng của bạn với trình giả lập

Khi bạn đã đạt được tiến bộ tốt với việc tạo mẫu tương tác và đã hoàn thành thiết kế, bạn sẽ 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 thích hợp. Bạn sẽ tiếp tục sử dụng các tab cơ sở dữ liệu, và cho các chức năng, các tab Logs trong Emulator Suite UI để xác nhận rằng hành vi của ứng dụng của bạn là đúng.

Hãy nhớ rằng Local Emulator Suite là một công cụ phát triển cục bộ. Việc 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 chức năng bạn đang tạo mẫu cục bộ.

Để chuyển sang yêu cầu ứng dụng của bạn ghi vào cơ sở dữ liệu, bạn cần trỏ các lớp thử nghiệm hoặc cấu hình trong ứng dụng của mình vào trình giả lập Cloud Firestore.

Android
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseFirestore firestore = FirebaseFirestore.getInstance();
        firestore.useEmulator("10.0.2.2", 8080);

        FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
                .setPersistenceEnabled(false)
                .build();
        firestore.setFirestoreSettings(settings);
iOS - Swift
let settings = Firestore.firestore().settings
settings.host = "localhost:8080"
settings.isPersistenceEnabled = false 
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

Phiên bản web 9

import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

// firebaseApps previously initialized using initializeApp()
const db = getFirestore();
connectFirestoreEmulator(db, 'localhost', 8080);

Phiên bản web 8

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}
Web
// Initialize your Web app as described in the Get started for Web
// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}

Tự động hóa các bài kiểm tra của bạn bằng các tập lệnh tùy chỉnh

Bây giờ cho bước quy trình làm việc tổng thể cuối cùng. Khi bạn đã tạo nguyên mẫu tính năng trong ứng dụng của mình và nó có vẻ hứa hẹn trên tất cả các nền tảng của bạn, bạn có thể chuyển sang triển khai và thử nghiệm cuối cùng. Đối với kiểm tra đơn vị và CI dòng làm việc, bạn có thể khởi động giả lập, chạy thử nghiệm kịch bản, và tắt giả lập trong một cuộc gọi duy nhất với exec lệnh:

firebase emulators:exec "./testdir/test.sh"

Khám phá các trình giả lập riêng lẻ chuyên sâu hơn

Bây giờ bạn đã thấy 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 với thông tin chi tiết về các trình giả lập riêng lẻ trong Suite, bao gồm cả cách sử dụng chúng để phát triển ứng dụng phía máy chủ:

Tiếp theo là gì?

Hãy nhớ đọc các chủ đề liên quan đến các trình giả lập cụ thể được liên kết ở trên. Sau đó: