Kết nối ứng dụng của bạn với Trình mô phỏng Cloud Storage cho Firebase

Trước khi kết nối ứng dụng của bạn với trình mô phỏng Cloud Storage for Firebase, hãy đảm bảo bạn nắm rõ quy trình Firebase Local Emulator Suite tổng thể, bạn cài đặt và định cấu hình Local Emulator Suite và xem lại các lệnh CLI của giao thức này.

Chọn một dự án Firebase

Firebase Local Emulator Suite mô phỏng các sản phẩm cho một dự án Firebase duy nhất.

Để chọn dự án sẽ sử dụng, trước khi bạn khởi động trình mô phỏng, trong lần chạy CLI firebase use trong thư mục đang hoạt động. Hoặc, bạn có thể chuyển cờ --project cho từng trình mô phỏng .

Local Emulator Suite hỗ trợ mô phỏng các dự án Firebase thực và Dự án minh hoạ.

Loại dự án Tính năng Sử dụng với trình mô phỏng
Thực

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

Các dự án thực tế 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, bộ nhớ nhóm, hàm hoặc bất kỳ tài nguyên nào khác mà bạn thiết lập cho Firebase đó dự án.

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

Đối với bất kỳ sản phẩm nào bạn không mô phỏng, ứng dụng và mã của bạn sẽ tương tác với tài nguyên trực tiếp (phiên bản cơ sở dữ liệu, bộ nhớ) nhóm, hàm, v.v.).

Bản trình diễn

Dự án Firebase minh hoạ không có cấu hình Firebase thực và không có tài nguyên trực tiếp nào. Các dự án này thường được truy cập thông qua các lớp học lập trình hoặc các hướng dẫn khác.

Mã dự án của các dự án minh hoạ có tiền tố demo-.

Khi làm việc với các dự án Firebase minh hoạ, các ứng dụng và mã của bạn sẽ tương tác với chỉ có thể sử dụng trình mô phỏng. Nếu ứng dụng của bạn cố gắng tương tác với một tài nguyên mà trình mô phỏng không chạy thì mã đó sẽ không thành công.

Bạn nên sử dụng các dự án minh hoạ bất cứ khi nào có thể. Các lợi ích bao gồm:

  • Thiết lập dễ dàng hơn vì bạn có thể chạy trình mô phỏng mà không cần phải tạo Dự án Firebase
  • An toàn hơn vì nếu mã của bạn vô tình gọi ra những lệnh không được mô phỏng (chính thức), thì sẽ không có khả năng thay đổi dữ liệu, mức 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 cấu hình SDK của bạn xuống.

Đo lường ứng dụng của bạn để trò chuyện với trình mô phỏng

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

Thiết lập cấu hình trong ứng dụng hoặc các lớp kiểm thử để tương tác với Trình mô phỏng Cloud Storage for Firebase như sau.

Kotlin+KTX
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
val storage = Firebase.storage
storage.useEmulator("10.0.2.2", 9199)
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseStorage storage = FirebaseStorage.getInstance();
storage.useEmulator("10.0.2.2", 9199);
Swift
Storage.storage().useEmulator(withHost: "127.0.0.1", port: 9199)

Web

const { getStorage, connectStorageEmulator } = require("firebase/storage");

const storage = getStorage();
if (location.hostname === "localhost") {
  // Point to the Storage emulator running on localhost.
  connectStorageEmulator(storage, "127.0.0.1", 9199);
} 

Web

var storage = firebase.storage();
if (location.hostname === "localhost") {
  // Point to the Storage emulator running on localhost.
  storage.useEmulator("127.0.0.1", 9199);
} 

Bạn không cần thiết lập thêm để kiểm thử các hàm trên đám mây được các sự kiện Cloud Storage for Firebase kích hoạt bằng trình mô phỏng. Khi Cloud Storage for FirebaseCloud Functions cả hai trình mô phỏng đều đang chạy, chúng tự động hoạt động cùng nhau.

Admin SDK giây

Firebase Admin SDK sẽ tự động kết nối với Cloud Storage for Firebase trình mô phỏng khi biến môi trường FIREBASE_STORAGE_EMULATOR_HOST được đặt:

export FIREBASE_STORAGE_EMULATOR_HOST="127.0.0.1:9199"

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

Nếu bạn muốn mã Admin SDK kết nối với một trình mô phỏng dùng chung chạy trong trong một môi trường khác, bạn sẽ cần chỉ định cùng một mã dự án mà bạn đặt bằng cách sử dụng Giao diện dòng lệnh (CLI) của Firebase. Bạn có thể truyền trực tiếp mã dự án đến initializeApp hoặc đặt giá trị Biến môi trường GCLOUD_PROJECT.

SDK dành cho quản trị viên 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 mô phỏng Cloud Storage for Firebase cho phép bạn xuất dữ liệu qua một phiên bản trình mô phỏng đang chạy. Xác định bộ dữ liệu cơ sở để sử dụng trong kiểm thử đơn vị hoặc quy trình tích hợp liên tục, sau đó xuất dữ liệu đó để chia sẻ trong nhóm.

firebase emulators:export ./dir

Trong các chương trình kiểm thử, 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 trình mô phỏng xuất dữ liệu khi tắt máy, bằng cách chỉ định hoặc chỉ đơn giản là sử dụng đường dẫn được truyền đến --import cờ.

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

Các tùy chọn nhập và xuất dữ liệu này hoạt động với firebase emulators:exec. Để biết thêm thông tin, hãy tham khảo tài liệu tham khảo về lệnh trình mô phỏng.

Sự khác biệt giữa trình mô phỏng Cloud Storage for Firebase và phiên bản phát hành công khai

Để kiểm thử các ứng dụng, trình mô phỏng Cloud Storage for Firebase được điều chỉnh để gần như hoàn hảo liên quan đến khu vực nền tảng 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 (Web, nền tảng Android và Apple).

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

Điểm khác biệt với Google Cloud Storage

Sản phẩm Cloud Storage for Firebase, bao gồm cả trình mô phỏng bộ nhớ, cung cấp một nhóm nhỏ chức năng của Google Cloud Storage (GCS) tập trung vào các đối tượng lưu trữ rất hữu ích cho việc phát triển các ứng dụng Firebase. Cloud Storage for Firebase khác với GCS ở những điểm sau:

  • Cloud Storage for Firebase hiện không hỗ trợ các API Bucket cho tạo, liệt kê, tải hoặc xoá bộ chứa lưu trữ.
  • Từ Google Cloud Storage Audiences API (API Đối tượng lưu trữ Google Cloud), các phương thức sau được hỗ trợ: copy, delete, get, insert, list, patch, rewrite, update.

Cloud IAM

Bộ mô phỏng Firebase không cố gắng sao chép hoặc tuân theo bất kỳ Hành vi liên quan đến IAM khi chạy. Trình mô phỏng tuân thủ chính sách bảo mật của Firebase Có quy tắc, nhưng trong các trường hợp thường dùng IAM, ví dụ: thiết lập Cloud Functions tài khoản dịch vụ gọi và theo đó là cá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 vào máy phát triển của bạn, tương tự như chạy trực tiếp tập lệnh cục bộ.

Thông báo Pub/Sub

Trình mô phỏng Cloud Storage for Firebase không tích hợp với Đám mây Trình mô phỏng Pub/Sub nên không hỗ trợ tạo các kênh/thông báo dành cho những thay đổi về đối tượng lưu trữ. Bạn nên dùng Bộ nhớ Cloud Functions sẽ kích hoạt trực tiếp.

Siêu dữ liệu cấp bộ chứa

Trình mô phỏng Cloud Storage for Firebase không hỗ trợ cấp bộ chứa 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 giữ lại dữ liệu. Firebase dự định sẽ cải thiện dịch vụ hỗ trợ này theo thời gian.

Tiếp theo là gì?