Làm quen với Cloud Storage dành cho C++

Cloud Storage cho Firebase cho phép bạn tải lên và chia sẻ nội dung do người dùng tạo, chẳng hạn như hình ảnh và video, cho phép bạn tạo nội dung đa phương tiện vào ứng dụng của mình. Dữ liệu của bạn được lưu trữ trong bộ chứa Google Cloud Storage – một giải pháp lưu trữ đối tượng có tỷ lệ exabyte với khả năng hoạt động cao và khả năng dự phòng trên toàn hệ thống. Cloud Storage cho Firebase cho phép bạn tải các tệp này lên một cách an toàn trực tiếp từ thiết bị di động và trình duyệt web, dễ dàng xử lý các mạng không ổn định.

Trước khi bắt đầu

Trước khi có thể sử dụng Cloud Storage, bạn cần:

  • Đăng ký dự án C++ của bạn và định cấu hình dự án đó để sử dụng Firebase.

    Nếu dự án C++ của bạn đã sử dụng Firebase, thì tức là dự án đó đã được đăng ký và định cấu hình cho Firebase.

  • Thêm SDK C++ của Firebase vào dự án C++.

Lưu ý rằng việc thêm Firebase vào dự án C++ sẽ liên quan đến các tác vụ trong cả bảng điều khiển của Firebase và trong dự án C++ đang mở (ví dụ: bạn tải các tệp cấu hình Firebase xuống từ bảng điều khiển, sau đó di chuyển các tệp đó vào dự án C++).

Tạo một bộ chứa mặc định trong Cloud Storage

  1. Trong ngăn điều hướng của bảng điều khiển của Firebase, hãy chọn Bộ nhớ, sau đó nhấp vào Bắt đầu.

  2. Xem lại thông báo về cách bảo mật dữ liệu của bạn trong Cloud Storage bằng các quy tắc bảo mật. Trong quá trình phát triển, hãy cân nhắc việc thiết lập các quy tắc dành cho quyền truy cập công khai.

  3. Chọn một vị trí cho bộ chứa mặc định trên Cloud Storage của bạn.

    • Chế độ cài đặt vị trí này là vị trí tài nguyên mặc định của Google Cloud Platform (GCP) cho dự án của bạn. Xin lưu ý rằng vị trí này sẽ được dùng cho các dịch vụ GCP trong dự án yêu cầu chế độ cài đặt vị trí, cụ thể là cơ sở dữ liệu Cloud Firestore và ứng dụng App Engine (bắt buộc nếu bạn sử dụng Cloud Scheduler).

    • Nếu bạn không thể chọn một vị trí, thì dự án của bạn đã có một vị trí tài nguyên GCP mặc định. Giá trị này được đặt trong quá trình tạo dự án hoặc khi thiết lập một dịch vụ khác có yêu cầu chế độ cài đặt vị trí.

    Nếu đang sử dụng Gói linh hoạt, bạn có thể tạo nhiều bộ chứa, mỗi bộ chứa có vị trí riêng.

  4. Nhấp vào Xong.

Thiết lập quyền truy cập công khai

Cloud Storage cho Firebase cung cấp ngôn ngữ quy tắc khai báo cho phép bạn xác định cấu trúc dữ liệu, cách lập chỉ mục dữ liệu và thời điểm có thể đọc và ghi dữ liệu của bạn. Theo mặc định, quyền đọc và ghi vào Cloud Storage bị hạn chế nên chỉ những người dùng đã xác thực mới có thể đọc hoặc ghi dữ liệu. Để bắt đầu mà không cần thiết lập Xác thực, bạn có thể định cấu hình các quy tắc để truy cập công khai.

Thao tác này khiến mọi người có thể sử dụng Cloud Storage, kể cả những người không dùng ứng dụng của bạn. Vì vậy, hãy nhớ hạn chế lại Cloud Storage khi bạn thiết lập tính năng xác thực.

Tạo và khởi chạy firebase::App

Trước khi có thể truy cập vào Cloud Storage, bạn cần tạo và khởi chạy firebase::App.

Bao gồm tệp tiêu đề cho firebase::App:

#include "firebase/app.h"

Android

Tạo firebase::App, truyền môi trường JNI và một tham chiếu jobject đến Hoạt động Java dưới dạng các đối số:

app = App::Create(AppOptions(), jni_env, activity);

iOS trở lên

Tạo firebase::App:

app = App::Create(AppOptions());

Truy cập vào lớp firebase::storage::Storage

Lớp firebase::storage::Storage là điểm truy cập cho SDK C++ của Cloud Storage.

Storage* storage = Storage::GetInstance(app);

Bạn đã sẵn sàng bắt đầu sử dụng Cloud Storage!

Trước tiên, hãy tìm hiểu cách tạo tệp đối chiếu trong Cloud Storage.

Thiết lập nâng cao

Có một số trường hợp sử dụng yêu cầu bạn phải thiết lập thêm:

Trường hợp sử dụng đầu tiên là hoàn hảo nếu bạn có người dùng trên khắp thế giới và muốn lưu trữ dữ liệu của họ ở gần họ. Ví dụ: bạn có thể tạo các bộ chứa ở Hoa Kỳ, Châu Âu và Châu Á để lưu trữ dữ liệu cho người dùng ở những khu vực đó nhằm giảm độ trễ.

Trường hợp sử dụng thứ hai là hữu ích nếu bạn có dữ liệu với nhiều kiểu truy cập. Ví dụ: bạn có thể thiết lập một bộ chứa nhiều khu vực hoặc khu vực để lưu trữ hình ảnh hoặc nội dung khác thường xuyên truy cập, và một bộ chứa gần ranh giới vi phạm chính sách hoặc bộ chứa lưu trữ bản sao lưu của người dùng hoặc nội dung khác ít khi truy cập.

Ở cả hai trường hợp sử dụng này, bạn nên sử dụng nhiều bộ chứa Cloud Storage.

Trường hợp sử dụng thứ ba là hữu ích nếu bạn đang tạo một ứng dụng, chẳng hạn như Google Drive, cho phép người dùng có nhiều tài khoản đăng nhập (ví dụ: một tài khoản cá nhân và một tài khoản công việc). Bạn có thể sử dụng một bản sao Ứng dụng Firebase tuỳ chỉnh để xác thực từng tài khoản bổ sung.

Sử dụng nhiều bộ chứa Cloud Storage

Nếu muốn sử dụng bộ chứa Cloud Storage khác với giá trị mặc định được cung cấp ở trên hoặc sử dụng nhiều bộ chứa Cloud Storage trong một ứng dụng, bạn có thể tạo một thực thể của firebase::storage::Storage tham chiếu đến bộ chứa tuỳ chỉnh của mình:

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("gs://my-custom-bucket");

Làm việc với bộ chứa đã nhập

Khi nhập một bộ chứa Cloud Storage hiện có vào Firebase, bạn sẽ phải cấp cho Firebase khả năng truy cập vào những tệp này bằng công cụ gsutil có trong Google Cloud SDK:

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

Bạn có thể tìm thấy số dự án của mình như mô tả trong phần giới thiệu về dự án Firebase.

Điều này không ảnh hưởng đến các bộ chứa mới tạo, vì những bộ chứa này có chế độ kiểm soát quyền truy cập mặc định để cho phép Firebase. Đây là biện pháp tạm thời và sẽ tự động được thực hiện trong tương lai.

Sử dụng ứng dụng Firebase tùy chỉnh

Nếu đang xây dựng một ứng dụng phức tạp hơn bằng cách sử dụng firebase::App tuỳ chỉnh, thì bạn có thể tạo một thực thể của firebase::storage::Storage được khởi chạy bằng ứng dụng đó:

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

Các bước tiếp theo