Bắt đầu với Cloud Storage trên các nền tảng của Apple

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

  1. Nếu chưa, hãy nhớ hoàn tất hướng dẫn bắt đầu cho ứng dụng trên các nền tảng của Apple. Chẳng hạn như:

    • Tạo một dự án Firebase.

    • Đăng ký ứng dụng của bạn cho các nền tảng của Apple với dự án và kết nối ứng dụng của bạn 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.

  2. Đả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

  1. 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.

  2. Nhấp vào Bắt đầu.

  3. Chọn một vị trí cho nhóm mặc định của bạn.

  4. Đị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.

  5. 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 Cloud Storage vào ứng dụng

Sử dụng Swift Package Manager để cài đặt và quản lý các phần phụ thuộc của Firebase.

  1. 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).
  2. Khi được nhắc, hãy thêm kho lưu trữ SDK Firebase cho các nền tảng của Apple:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Chọn thư viện Cloud Storage.
  5. Thêm cờ -ObjC vào mục Cờ trình liên kết khác trong chế độ cài đặt bản dựng của mục tiêu.
  6. 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.

Thiết lập Cloud Storage trong ứng dụng

  1. Khởi chạy Firebase trước khi tạo hoặc sử dụng bất kỳ thông tin tham chiếu nào của Firebase.

    Có thể bạn đã 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 FirebaseStorage vào danh sách nhập của mình.

    1. Nhập mô-đun FirebaseCore và mô-đun FirebaseStorage trong UIApplicationDelegate của bạn. Bạn cũng nên thêm FirebaseAuth.

      SwiftUI

      import SwiftUI
      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Swift

      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Objective-C

      @import FirebaseCore;
      @import FirebaseStorage;
      @import FirebaseAuth;
      // ...
      
    2. Định cấu hình một phiên bản dùng chung FirebaseApp trong phương thức application(_:didFinishLaunchingWithOptions:) của uỷ quyền ứ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];
      
    3. (Chỉ SwiftUI) Tạo một uỷ quyền ứng dụng và đính kèm uỷ quyền đó vào cấu trúc App bằng cách sử dụng UIApplicationDelegateAdaptor hoặc NSApplicationDelegateAdaptor. Bạn cũng phải tắt tính năng thay thế 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()
            }
          }
        }
      }
      
  2. Lấy thông tin tham chiếu đến dịch vụ Cloud Storage bằng cách sử dụng Ứng dụng Firebase mặc định.

    1. Đảm bảo rằng tệp cấu hình Firebase (GoogleService-Info.plist) 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.

      1. Lấy tệp cấu hình mới nhất..

      2. Sử dụng tệp cấu hình đã tải xuống này để thay thế tệp GoogleService-Info.plist hiệ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.

        Đả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 không có thêm ký tự, chẳng hạn như (2).

    2. Lấy thông tin 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 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:

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 vùng lưu trữ ở 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 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 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 nhóm Cloud Storage khác với nhóm mặc định được cung cấp ở trên hoặc sử dụng nhiều nhóm Cloud Storage trong một ứng dụng, bạn có thể tạo một phiên bản FIRStorage tham chiếu đến nhóm 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 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ể 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