Kết nối ứng dụng của bạn với Trình mô phỏng lưu trữ đám mây

Trước khi kết nối ứng dụng của bạn để giả lập Cloud Storage, hãy chắc chắn rằng bạn hiểu được công việc tổng thể căn cứ hỏa lực địa phương Emulator Suite , và rằng bạn cài đặt và cấu hình các địa phương Emulator Suite và xem xét nó lệnh CLI .

Chọn một dự án Firebase

Bộ mô phỏng cục bộ Firebase mô phỏng các sản phẩm cho một dự án Firebase duy nhất.

Để chọn dự án để sử dụng, trước khi bạn bắt đầu giả lập, trong CLI chạy firebase use trong thư mục làm việc của bạn. Hoặc, bạn có thể vượt qua --project cờ cho mỗi lệnh giả lập.

Địa phương Emulator Suite hỗ trợ thi đua của các dự án căn cứ hỏa lực thựcdemo dự án.

Loại dự án Đặc trưng Sử dụng với trình giả lập
Thực

Dự án Firebase thực là dự án bạn đã tạo và định cấu hình (rất có thể là thông qua bảng điều khiển Firebase).

Các dự án thực có các tài nguyên trực tiếp, chẳng hạn như các phiên bản cơ sở dữ liệu, nhóm lưu trữ, chức năng hoặc bất kỳ tài nguyên nào khác mà bạn thiết lập cho dự án Firebase đó.

Khi làm việc với các dự án Firebase thực, bạn có thể chạy trình giả lập cho bất kỳ hoặc tất cả các sản phẩm được hỗ trợ.

Đối với bất kỳ sản phẩm bạn không mô phỏng, ứng dụng và mã của bạn sẽ tương tác với các tài nguyên sống (ví dụ cơ sở dữ liệu, lưu trữ xô, chức năng, vv).

Bản giới thiệu

Một dự án căn cứ hỏa lực bản demo không có cấu hình căn cứ hỏa lực thực tế và không có tài nguyên sống. Các dự án này thường được truy cập thông qua codelabs hoặc các hướng dẫn khác.

Dự án ID cho bản demo dự án có demo- tiền tố.

Khi làm việc với bản demo dự án căn cứ hỏa lực, ứng dụng của bạn và tương tác mã với chỉ giả lập. Nếu ứng dụng của bạn cố gắng tương tác với tài nguyên mà trình mô phỏng không chạy, thì mã đó sẽ không thành công.

Chúng tôi khuyên bạn nên sử dụng các dự án demo bất cứ khi nào có thể. Lợi ích bao gồm:

  • Thiết lập dễ dàng hơn, vì bạn có thể chạy trình giả lập mà không cần tạo dự án Firebase
  • An toàn hơn, vì nếu mã của bạn vô tình gọi các tài nguyên không được mô phỏng (sản xuất), thì sẽ không có cơ hội thay đổi dữ liệu, sử dụng và thanh toán
  • Hỗ trợ ngoại tuyến tốt hơn, vì không cần truy cập internet để tải xuống cấu hình SDK của bạn.

Tạo công cụ cho ứng dụng của bạn để nói chuyện với trình giả lập

Nền tảng Android, Apple và SDK web

Thiết lập cấu hình trong ứng dụng của bạn hoặc các lớp thử nghiệm để tương tác với trình giả lập Cloud Storage như sau.

Android
FirebaseStorage.getInstance().useEmulator('10.0.2.2', 9199);
Nhanh
Storage.storage().useEmulator(withHost:"localhost", port:9199)
Web v8
var storage = firebase.storage();
storage.useEmulator("localhost", 9199);
Web v9
import { getStorage, connectStorageEmulator } from "firebase/storage";

const storage = getStorage();
connectStorageEmulator(storage, "localhost", 9199);

Không cài đặt bổ sung là cần thiết để kiểm tra chức năng của Cloud kích hoạt bởi sự kiện Cloud Storage sử dụng giả lập. Khi cả hai trình giả lập Cloud Storage và Cloud Functions đang chạy, chúng sẽ tự động hoạt động cùng nhau.

SDK dành cho quản trị viên

Các căn cứ hỏa lực quản lý SDK tự động kết nối với các giả lập Cloud Storage khi FIREBASE_STORAGE_EMULATOR_HOST biến môi trường được thiết lập:

export FIREBASE_STORAGE_EMULATOR_HOST="localhost:9199"

Lưu ý rằng trình giả lập Cloud Functions tự động nhận biết trình giả lập Cloud Storage, vì vậy bạn có thể bỏ qua bước này khi thử nghiệm tích hợp giữa các trình giả lập Cloud Functions và Cloud Storage. Biến môi trường sẽ được đặt tự động cho SDK quản trị trong Cloud Storage.

Khi kết nối với trình giả lập Cloud Storage từ bất kỳ môi trường nào khác, bạn sẽ cần chỉ định ID dự án. Bạn có thể vượt qua một ID dự án để initializeApp trực tiếp hoặc đặt GCLOUD_PROJECT biến môi trường. Lưu ý rằng bạn không cần sử dụng ID dự án Firebase thực của mình; emulator Cloud Storage sẽ chấp nhận bất kỳ ID dự án, miễn là nó có một định dạng hợp lệ .

SDK quản trị Node.js
admin.initializeApp({ projectId: "your-project-id" });
Biến môi trường
export GCLOUD_PROJECT="your-project-id"

Nhập và xuất dữ liệu

Cơ sở dữ liệu và trình giả lập Cloud Storage cho phép bạn xuất dữ liệu từ một phiên bản giả lập đang chạy. Xác định tập hợp dữ liệu cơ sở để sử dụng trong các bài kiểm tra đơn vị của bạn hoặc quy trình công việc tích hợp liên tục, sau đó xuất nó để chia sẻ giữa các nhóm.

firebase emulators:export ./dir

Trong các thử nghiệm, khi khởi động trình mô phỏng, hãy nhập dữ liệu cơ sở.

firebase emulators:start --import=./dir

Bạn có thể hướng dẫn giả lập để xuất dữ liệu trên tắt máy, hoặc chỉ định một con đường xuất khẩu hoặc đơn giản là sử dụng đường truyền cho --import cờ.

firebase emulators:start --import=./dir --export-on-exit

Các tùy chọn nhập dữ liệu và xuất khẩu làm việc với các firebase emulators:exec lệnh là tốt. Để biết thêm, tham khảo các tài liệu tham khảo lệnh giả lập .

Trình giả lập Cloud Storage khác với phiên bản sản xuất như thế nào

Để thử nghiệm các ứng dụng khách, trình giả lập Cloud Storage phù hợp với sản xuất gần như hoàn hảo liên quan đến diện tích bề mặt API Firebase. Tất cả các lệnh Firebase dự kiến ​​sẽ hoạt động giữa các SDK Firebase thông thường (nền tảng Web, Android và Apple).

Đối với thử nghiệm các ứng dụng phía máy chủ, tồn tại những hạn chế. SDK dành cho quản trị viên của Firebase sử dụng bề mặt API đám mây của Google và không phải tất cả các điểm cuối của API này đều được mô phỏng. Theo quy tắc chung, bất kỳ điều gì có thể được thực hiện từ SDK ứng dụng khách (tải lên hoặc xóa tệp, lấy và thiết lập siêu dữ liệu) cũng được triển khai để sử dụng từ SDK quản trị, nhưng bất kỳ điều gì khác ngoài điều đó thì không. Các loại trừ đáng chú ý được liệt kê dưới đây.

Đám mây IAM

Bộ mô phỏng Firebase không cố gắng sao chép hoặc tôn trọng bất kỳ hành vi nào liên quan đến IAM để chạy. Trình giả lập tuân thủ Quy tắc bảo mật Firebase được cung cấp, nhưng trong các tình huống mà IAM thường được sử dụng, chẳng hạn như để đặt Chức năng đám mây gọi tài khoản dịch vụ và do đó có quyền, trình mô phỏng không thể định cấu hình và sẽ sử dụng tài khoản có sẵn trên toàn cầu trên máy nhà phát triển của bạn, tương tự như chạy trực tiếp một tập lệnh cục bộ.

Pub / Sub thông báo

Trình giả lập Cloud Storage không tích hợp với trình giả lập Cloud Pub / Sub và do đó không hỗ trợ tạo kênh / thông báo cho các thay đổi đối tượng lưu trữ. Chúng tôi khuyên bạn nên sử dụng trực tiếp các trình kích hoạt Bộ nhớ Chức năng Đám mây.

Siêu dữ liệu cấp nhóm

Trình giả lập Cloud Storage không hỗ trợ bất kỳ cấu hình cấp độ nhóm nào bao gồm lớp lưu trữ, cấu hình CORS cấp độ nhóm, nhãn hoặc chính sách lưu giữ. Firebase dự định cải thiện hỗ trợ này theo thời gian.

Tiếp theo là gì?