Làm quen với Cloud Storage trên Android

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, nhờ đó bạn có thể tích hợp 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 cầu. 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, giúp xử lý các mạng không ổn định một cách dễ dàng.

Điều kiện tiên quyết

Thêm Firebase vào dự án Android của bạn nếu bạn chưa thực hiện.

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

  1. Trên ngăn điều hướng trên 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 thông báo về cách bảo mật dữ liệu của bạn trong Cloud Storage bằng 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 cho quyền truy cập công khai.

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

    • Chế độ cài đặt vị trí này là vị trí tài nguyên Google Cloud Platform (GCP) mặc định trong dự án của bạn. Xin lưu ý rằng thông tin vị trí này sẽ được dùng cho các dịch vụ GCP trong dự án của bạn mà đòi hỏi phải có chế độ cài đặt vị trí, cụ thể là cơ sở dữ liệu Cloud Firestore và ứng dụng App Engine của bạn (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ì nghĩa là dự án của bạn đã có vị trí tài nguyên GCP mặc định. Chính sách 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 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 một ngôn ngữ quy tắc khai báo giúp bạn xác định cách 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ỉ 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 về quyền truy cập công khai.

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

Thêm SDK Cloud Storage vào ứng dụng

Trong tệp Gradle mô-đun (cấp ứng dụng) (thường là <project>/<app-module>/build.gradle.kts hoặc <project>/<app-module>/build.gradle), hãy thêm phần phụ thuộc cho thư viện Cloud Storage cho Android. Bạn nên sử dụng Firebase Android BoM để kiểm soát việc tạo phiên bản thư viện.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.1.1"))

    // Add the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage")
}

Bằng cách sử dụng Firebase Android BoM, ứng dụng của bạn sẽ luôn sử dụng các phiên bản tương thích của thư viện Android Firebase.

(Thay thế) Thêm các phần phụ thuộc thư viện Firebase mà không sử dụng BoM

Nếu chọn không sử dụng BoM của Firebase, bạn phải chỉ định từng phiên bản thư viện Firebase trong dòng phần phụ thuộc tương ứng.

Xin lưu ý rằng nếu sử dụng nhiều thư viện Firebase trong ứng dụng của mình, bạn nên sử dụng BoM để quản lý các phiên bản thư viện nhằm đảm bảo rằng mọi phiên bản đều tương thích.

dependencies {
    // Add the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage:21.0.0")
}
Bạn đang tìm một mô-đun thư viện dành riêng cho Kotlin? Kể từ tháng 10 năm 2023 (Firebase BoM 32.5.0), cả nhà phát triển Kotlin và Java đều có thể sử dụng mô-đun thư viện chính (để biết thông tin chi tiết, hãy xem phần Câu hỏi thường gặp về sáng kiến này).

Thiết lập Cloud Storage

Bước đầu tiên để truy cập vào bộ chứa Cloud Storage là tạo một bản sao của FirebaseStorage:

Kotlin+KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

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 tham chiếu Cloud Storage.

Thiết lập nâng cao

Có một số trường hợp sử dụng yêu cầu thiết lập bổ sung:

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 toàn 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 sẽ hữu ích nếu bạn có dữ liệu với các mẫu truy cập khác nhau. Ví dụ: bạn có thể thiết lập một bộ chứa theo khu vực hoặc nhiều khu vực để lưu trữ hình ảnh hoặc nội dung khác thường được truy cập, cũng như một bộ chứa gần hoặc đường dây nguội lưu trữ bản sao lưu của người dùng hoặc nội dung khác ít khi được truy cập.

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

Trường hợp sử dụng thứ ba sẽ hữu ích nếu bạn đang xây dựng 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ụ: tài khoản cá nhân và 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 dùng một bộ chứa Cloud Storage khác với bộ chứa mặc định được cung cấp ở trên hoặc muốn 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 FirebaseStorage tham chiếu đến bộ chứa tuỳ chỉnh của mình:

Kotlin+KTX

// Get a non-default Storage bucket
val storage = Firebase.storage("gs://my-custom-bucket")

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.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 các 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 như mô tả trong phần giới thiệu về các dự án Firebase.

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

Sử dụng ứng dụng Firebase tuỳ 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 FirebaseApp tuỳ chỉnh, bạn có thể tạo một thực thể của FirebaseStorage được khởi chạy bằng ứng dụng đó:

Kotlin+KTX

// Get the default bucket from a custom FirebaseApp
val storage = Firebase.storage(customApp!!)

// Get a non-default bucket from a custom FirebaseApp
val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")

Java

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.getInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");

Các bước tiếp theo