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, giúp bạn xây dựng nội dung đa phương tiện phong phú vào ứng dụng của mình. Dữ liệu của bạn được lưu trữ trong một bộ chứa Google Cloud Storage — một giải pháp lưu trữ đối tượng có quy mô exabyte với khả năng hoạt động cao và 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 bạn chưa thực hiện, hãy nhớ hoàn tất hướng dẫn bắt đầu sử dụng cho ứng dụng trên nền tảng của Apple. Chẳng hạn như:
Tạo dự án Firebase.
Đăng ký ứng dụng nền tảng Apple với dự án, và kết nối ứng dụng với Firebase bằng cách thêm thư viện Firebase và tệp cấu hình Firebase (
GoogleService-Info.plist) vào ứng dụng.
Đảm bảo dự án Firebase của bạn sử dụng gói giá Blaze (trả tiền theo mức dùng). Đây là yêu cầu bắt buộc để sử dụng Cloud Storage for Firebase. 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 dùng thử miễn phí trị giá 300 USD hay không.
Tạo một bộ chứa Cloud Storage mặc định
Trong bảng điều khiển Firebase, hãy chuyển đến phần Databases & Storage (Cơ sở dữ liệu và bộ nhớ) > Storage (Bộ nhớ).
Nếu dự án của bạn chưa sử dụng gói giá Blaze (trả tiền theo mức dùng), 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 bộ chứa mặc định.
Các bộ chứa trong
,US-CENTRAL1 vàUS-EAST1 có thể tận dụng cấp"Luôn miễn phí" cho Google Cloud Storage. Bộ chứa ở tất cả các vị trí khác tuân theo Google Cloud Storage mức giá và mức sử dụng.US-WEST1Nếu muốn, sau này bạn có thể tạo nhiều bộ chứa, mỗi bộ chứa có vị trí riêng.
Định cấu hình Firebase Security Rules cho bộ chứa mặc định. Trong quá trình phát triển, hãy cân nhắc việc thiết lập quy tắc cho quyền truy cập công khai.
Nhấp vào Xong.
Giờ đây, bạn có thể xem bộ chứa trong bảng điều khiển Firebase (chuyển đến thẻ Databases & Storage (Cơ sở dữ liệu và bộ nhớ) > Storage (Bộ nhớ) > Files (Tệp)).
Định dạng tên bộ chứa 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 ngôn ngữ quy tắc khai báo cho phé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. 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 để cho phép truy cập công khai.
Điều này khiến Cloud Storage mở cho bất kỳ ai, ngay 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 bạn thiết lập quy trình xác thực.
Thêm Cloud Storage vào ứng dụng
Sử dụng Trình quản lý gói Swift để cài đặt và quản lý các phần phụ thuộc của Firebase.
- Trong Xcode, khi dự án ứng dụng của bạn đang mở, hãy chuyển đến File > Add Packages (Tệp > Thêm gói).
- Khi được nhắc, hãy thêm kho lưu trữ SDK Firebase cho nền tảng của Apple:
- Chọn thư viện Cloud Storage.
- Thêm cờ
-ObjCvào phần Other Linker Flags (Cờ trình liên kết khác) trong chế độ cài đặt bản dựng của mục tiêu. - Khi hoàn tất, Xcode sẽ tự động bắt đầu phân giải và tải các phần phụ thuộc của bạn xuống ở chế độ nền.
https://github.com/firebase/firebase-ios-sdk.git
Thiết lập Cloud Storage trong ứng dụng
Khởi chạy Firebase trước khi tạo hoặc sử dụng bất kỳ tệp đối chiếu nào của Firebase.
Bạn có thể đã thực hiện việc này nếu đã thiết lập một sản phẩm Firebase khác, nhưng bạn cần đảm bảo thêm thư viện
FirebaseStoragevào danh sách nhập.Nhập mô-đun
FirebaseCorevà mô-đunFirebaseStoragevàoUIApplicationDelegate. Bạn cũng nên thêmFirebaseAuth.SwiftUI
import SwiftUI import FirebaseCore import FirebaseStorage import FirebaseAuth // ...Swift
import FirebaseCore import FirebaseStorage import FirebaseAuth // ...Objective-C
@import FirebaseCore; @import FirebaseStorage; @import FirebaseAuth; // ...Định cấu hình một thực thể dùng chung
FirebaseApptrong phương thứcapplication(_:didFinishLaunchingWithOptions:)của trình uỷ nhiệm ứng dụng:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()Swift
// Use Firebase library to configure APIs FirebaseApp.configure()Objective-C
// Use Firebase library to configure APIs [FIRApp configure];(Chỉ dành cho SwiftUI) Tạo một trình uỷ quyền ứng dụng và đính kèm trình uỷ quyền đó vào cấu trúc
AppbằngUIApplicationDelegateAdaptorhoặcNSApplicationDelegateAdaptor. Bạn cũng phải tắt tính năng hoán đổi uỷ quyền ứng dụng. Để biết thêm thông tin, hãy xem hướng dẫn về SwiftUI.SwiftUI
@main struct YourApp: App { // Register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Tham chiếu đến dịch vụ Cloud Storage bằng cách sử dụng Ứng dụng Firebase mặc định.
Đảm bảo tệp cấu hình Firebase (
GoogleService-Info.plist) trong toàn bộ mã nguồn của ứng dụng được cập nhật tên của bộ 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
GoogleService-Info.plisthiện có trong thư mục gốc của dự án Xcode. Nếu được nhắc, hãy chọn thêm tệp cấu hình vào tất cả các mục tiêu.Hãy đảm bảo rằng bạn chỉ có tệp cấu hình mới tải xuống gần đây nhất này trong ứng dụng và tên tệp không có thêm ký tự, chẳng hạn như
(2).
Tham chiếu đến dịch vụ Cloud Storage bằng cách sử dụng Ứng dụng Firebase mặc định:
Swift
let storage = Storage.storage()
// Alternatively, explicitly specify the bucket name URL. storage = Storage.storage(url:"gs://BUCKET_NAME")
Objective-C
FIRStorage *storage = [FIRStorage storage];
// Alternatively, explicitly specify the bucket name URL. // FIRStorage storage = [FIRStorage storageWithURL:@"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 tệp đối chiếu Cloud Storage.
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 bộ chứa Cloud Storage ở nhiều khu vực địa lý
- Sử dụng bộ chứa Cloud Storage trong các lớp lưu trữ khác nhau
- Sử dụng bộ chứa 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 là lựa chọn 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 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 đ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 nearline hoặc coldline để 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 nên sử dụng nhiều bộ chứa Cloud Storage.
Trường hợp sử dụng thứ ba rất 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 đăng nhập vào nhiều tài khoản (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 Ứ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 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 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 FIRStorage tham chiếu đến bộ chứa tuỳ chỉnh của mình:
Swift
// Get a non-default Cloud Storage bucket storage = Storage.storage(url:"gs://my-custom-bucket")
Objective-C
// Get a non-default Cloud Storage bucket FIRStorage storage = [FIRStorage storageWithURL:@"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://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 bộ chứa mới tạo, vì các bộ chứa đó có quyền kiểm soát 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 FirebaseApp tuỳ chỉnh, bạn có thể tạo một thực thể của Storage được khởi chạy bằng ứng dụng đó:
Swift
// Get the default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp) // Get a non-default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
Objective-C
// Get the default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp]; // Get a non-default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"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ỉ ứ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 về ngân sách cho dự án của bạn trong bảng điều khiển Google Cloud.
Theo dõi trang tổng quan về Mức sử dụng và thanh toán trong bảng điều khiển Firebase để có được bức tranh tổng thể 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 trang tổng quan Cloud Storage Mức sử dụng để biết thêm thông tin về việc sử dụng chi tiết.