Cloud Storage for 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ạo nội dung đa phương tiện phong phú trong các ứng dụng của mình. Dữ liệu của bạn được lưu trữ trong một vùng chứa Google Cloud Storage – một giải pháp lưu trữ đối tượng ở quy mô exabyte có khả năng hoạt động cao và tính dự phòng toàn cầu. Cloud Storage for Firebase cho phép bạn tải các tệp này lên một cách an toàn ngay từ thiết bị di động và trình duyệt web, đồng thời dễ dàng xử lý các mạng không ổn định.
Trước khi bắt đầu
Nếu chưa, hãy nhớ hoàn tất hướng dẫn bắt đầu cho ứng dụng Android. Chẳng hạn như:
Tạo một dự án Firebase.
Đăng ký ứng dụng Android với dự án và kết nối ứng dụng với Firebase bằng cách thêm các phần phụ thuộc Firebase, trình bổ trợ dịch vụ Google và tệp cấu hình Firebase (
google-services.json
) vào ứng dụng.
Đảm bảo dự án Firebase của bạn sử dụng Gói giá linh hoạt (trả tiền theo mức dùng). Nếu bạn mới sử dụng Firebase và Google Cloud, hãy kiểm tra xem bạn có đủ điều kiện nhận khoản tín dụng trị giá 300 USD hay không.
Tạo bộ chứa Cloud Storage mặc định
Trong ngăn điều hướng của bảng điều khiển Firebase, hãy chọn Lưu trữ.
Nếu dự án của bạn chưa sử dụng gói giá linh hoạt Blaze, thì bạn sẽ được nhắc nâng cấp dự án.
Nhấp vào Bắt đầu.
Chọn một vị trí cho nhóm mặc định của bạn.
Các nhóm trong
,US-CENTRAL1
vàUS-EAST1
có thể tận dụng cấp"Luôn miễn phí" cho Google Cloud Storage. Các nhóm ở tất cả những vị trí khác đều tuân theo Google Cloud Storage mức giá và mức sử dụng.US-WEST1
Nếu muốn, sau này bạn có thể tạo nhiều vùng chứa, mỗi vùng chứa có vị trí riêng.
Định cấu hình Firebase Security Rules cho vùng chứa mặc định. Trong quá trình phát triển, hãy cân nhắc thiết lập các quy tắc để truy cập công khai.
Nhấp vào Xong.
Giờ đây, bạn có thể xem nhóm trong thẻ Cloud Storage Tệp của bảng điều khiển Firebase. Định dạng tên nhóm mặc định là PROJECT_ID.firebasestorage.app
Thiết lập quyền truy cập công khai
Cloud Storage for Firebase cung cấp một ngôn ngữ quy tắc khai báo cho phép bạn xác định cách dữ liệu của bạn nên được cấu trúc, cách dữ liệu nên được lập chỉ mục và thời điểm dữ liệu có thể được đọc và ghi. Theo mặc định, quyền đọc và ghi vào Cloud Storage bị hạn chế để 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 Authentication, bạn có thể định cấu hình các quy tắc để truy cập công khai.
Việc này sẽ mở Cloud Storage cho bất kỳ ai, 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 lại khi bạn thiết lập quy trình xác thực.
Thêm SDK Cloud Storage vào ứng dụng của bạn
Trong tệp Gradle (cấp ứng dụng) của mô-đun (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:34.0.0")) // 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 những phiên bản tương thích của thư viện Android trên Firebase.
(Cách khác) Thêm phần phụ thuộc của thư viện Firebase mà không sử dụng BoM
Nếu chọn không sử dụng Firebase BoM, bạn phải chỉ định từng phiên bản thư viện Firebase trong dòng phần phụ thuộc của phiên bản đó.
Xin lưu ý rằng nếu sử dụng nhiều thư viện Firebase trong ứng dụng, 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 tất cả các 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:22.0.0") }
Thiết lập Cloud Storage trong ứng dụng
Đảm bảo rằng tệp cấu hình Firebase (
google-services.json
) trong cơ sở mã của ứng dụng được cập nhật bằng tên của vùng chứa Cloud Storage mặc định.Sử dụng tệp cấu hình đã tải xuống này để thay thế tệp
google-services.json
hiện có trong thư mục mô-đun (cấp ứng dụng) của ứng dụng.Đảm bảo rằng bạn chỉ có tệp cấu hình đã tải xuống gần đây nhất này trong ứng dụng và tên tệp của tệp này không có thêm ký tự, chẳng hạn như
(2)
.
Truy cập vào nhóm Cloud Storage bằng cách tạo một thực thể của
FirebaseStorage
:Kotlin
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");
Bạn đã sẵn sàng bắt đầu sử dụng Cloud Storage!
Bước tiếp theo? Tìm hiểu cách tạo Cloud Storage tài liệu tham khảo.
Thiết lập nâng cao
Có một số trường hợp sử dụng cần thiết lập thêm:
- Sử dụng các nhóm Cloud Storage ở nhiều khu vực địa lý
- Sử dụng các nhóm Cloud Storage trong các lớp lưu trữ khác nhau
- Sử dụng các nhóm Cloud Storage với nhiều người dùng đã xác thực trong cùng một ứng dụng
Trường hợp sử dụng đầu tiên này rất phù hợp 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 nhóm ở 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 nhiều mẫu truy cập. Ví dụ: bạn có thể thiết lập một bộ chứa đa 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 được truy cập, và một bộ chứa gần trực tuyến hoặc bộ chứa lưu trữ lạnh lưu trữ bản sao lưu của người dùng hoặc nội dung khác không thường xuyên được truy cập.
Trong cả hai trường hợp sử dụng này, bạn sẽ muốn sử dụng nhiều nhóm Cloud Storage.
Trường hợp sử dụng thứ ba sẽ 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ụ: 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 phiên bản Firebase App tuỳ chỉnh để xác thực từng tài khoản bổ sung.
Sử dụng nhiều nhóm Cloud Storage
Nếu muốn sử dụng một vùng chứa Cloud Storage khác với vùng chứa mặc định được mô tả trước đó trong hướng dẫn này hoặc sử dụng nhiều vùng chứa Cloud Storage trong một ứng dụng, bạn có thể tạo một thực thể FirebaseStorage
tham chiếu đến vùng chứa tuỳ chỉnh của mình:
Kotlin
// 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 các nhóm đã nhập
Khi nhập một vùng chứa Cloud Storage hiện có vào Firebase, bạn sẽ phải cấp cho Firebase quyền truy cập vào các tệp này bằng công cụ gsutil
có trong SDK Google Cloud:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME
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 vùng chứa mới tạo, vì các vùng chứa đó 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 tạo 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ể FirebaseStorage
được khởi chạy bằng ứng dụng đó:
Kotlin
// 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
Chuẩn bị ra mắt ứng dụng:
Bật App Check để đảm bảo rằng chỉ các ứng dụng của bạn mới có thể truy cập vào bộ chứa lưu trữ.
Thiết lập cảnh báo ngân sách cho dự án của bạn trong bảng điều khiển Google Cloud.
Theo dõi bảng điều khiển Mức sử dụng và thanh toán trong bảng điều khiển Firebase để nắm được thông tin tổng quan về mức sử dụng của dự án trên nhiều dịch vụ của Firebase. Bạn cũng có thể truy cập vào Cloud Storage Trang tổng quan về mức sử dụng để biết thêm thông tin chi tiết về mức sử dụng.