開始在 Apple 平台上使用 Cloud Storage

Cloud Storage for Firebase 可讓您上傳及分享使用者原創內容 圖片與影片,讓您能將互動式多媒體內容加入自己的 應用程式。您的資料儲存在 Google Cloud Storage 值區: EB 規模物件儲存解決方案,具備高可用性和全域性 以及備援功能Cloud Storage for Firebase 可讓您安全地上傳這些檔案 直接透過行動裝置和網路瀏覽器處理 。

事前準備

  1. 安裝 Firebase SDK
  2. Firebase 主控台中,將應用程式加入 Firebase 專案。

建立預設的 Cloud Storage 值區

  1. Firebase 控制台的導覽窗格中,選取「Storage」(儲存空間)。 然後按一下「開始使用」

  2. 查看有關使用安全性保護 Cloud Storage 資料的說明訊息 不過,編寫這類演算法並不容易 因為我們無法寫出所有可能的規則在開發期間 設定公開存取規則

  3. 選取預設位置 Cloud Storage 值區

    • 這項位置資訊設定是專案的 預設 Google Cloud Platform (GCP) 資源位置。 請注意,這個位置會用於專案中的 GCP 服務 需要設定位置資訊才能正常運作 Cloud Firestore 資料庫和 App Engine 應用程式 (使用 Cloud Scheduler 時的必要項目)。

    • 如果無法選取位置,代表您的專案已經 已有預設的 GCP 資源位置這是在專案期間所設定 您在設定需要位置的其他服務時 以及環境敘述

    如果您使用 Blaze 方案,即可 建立多個值區,每個值區有各自的值區 位置

  4. 點選「完成」

設定公開存取權

Cloud Storage for Firebase 提供的宣告規則語言 定義資料結構、建立索引的方式 資料可供讀取及寫入根據預設, Cloud Storage 設有限制,因此只有通過驗證的使用者才能讀取或寫入 資料。如要在不設定驗證功能的情況下開始使用,您可以 設定公開存取的規則

如此一來,任何人都能存取 Cloud Storage,即使對方未使用您的 所以在設定 Cloud Storage 資源時 驗證。

將 Cloud Storage 新增至應用程式

使用 Swift Package Manager 安裝及管理 Firebase 依附元件。

  1. 在 Xcode 中保持開啟應用程式專案,然後依序選擇 [檔案] >新增套件
  2. 在系統提示時,新增 Firebase Apple 平台 SDK 存放區:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. 選擇 Cloud Storage 程式庫。
  5. 在目標建構設定的「Other Linker Flags」部分中新增 -ObjC 標記。
  6. 完成後,Xcode 會自動開始解析並下載 複製到背景依附元件

設定 Cloud Storage

您必須先初始化 Firebase,才能建立任何 Firebase 參考資料,或是 如果您已經為另一項 Firebase 功能執行這項作業,可以略過 這個步驟。

  1. FirebaseCore 模組匯入至 UIApplicationDelegate和任何其他 應用程式委派所用的 Firebase 模組。 例如,如要使用 Cloud Firestore 和驗證功能:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. 設定 FirebaseApp 共用執行個體 application(_:didFinishLaunchingWithOptions:) 方法:

    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. 如果您使用 SwiftUI,則必須建立並附加應用程式委派 透過 UIApplicationDelegateAdaptorApp NSApplicationDelegateAdaptor。您也必須停用應用程式委派功能切換功能。適用對象 詳情請參閱 SwiftUI 操作說明

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. 使用預設的 Firebase 應用程式,取得 Cloud Storage 服務的參照:

    Swift

    let storage = Storage.storage()
    

    Objective-C

    FIRStorage *storage = [FIRStorage storage];
    

您現在可以開始使用 Cloud Storage 了!

我們先來看看如何建立 Cloud Storage 參考資料

進階設定

以下列舉幾個需要額外設定的用途:

  • 如何在 Google Cloud 中使用 Cloud Storage 值區 多個地理區域
  • 如何在 Google Cloud 中使用 Cloud Storage 值區 不同的儲存空間級別
  • 在同一應用程式中與多位已驗證使用者搭配使用 Cloud Storage 值區

如果有使用者遍布世界各地,而且想要 儲存資料例如,您可以在美國建立值區 歐洲和亞洲地區,為這些地區的使用者儲存資料以縮短延遲時間。

如果資料擁有不同的存取模式,第二個用途就十分有用。 舉例來說,您可以設定多區域或單一區域值區 相片或其他經常存取的內容,以及 Nearline 或 Coldline 值區 儲存使用者備份或其他不常存取的內容

在這些用途中 使用多個 Cloud Storage 值區

如果您要開發應用程式 例如 Google 雲端硬碟 能讓使用者擁有多個登入帳號 (例如個人帳戶) 以及公司帳戶)。您可以使用自訂 Firebase 應用程式 執行個體驗證每個額外帳戶

使用多個 Cloud Storage 值區

如要使用上方預設選項以外的 Cloud Storage 值區, 或是在單一應用程式中使用多個 Cloud Storage 值區,您可以建立執行個體 參照自訂值區的 FIRStorage

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"];
    

使用匯入的值區

將現有 Cloud Storage 值區匯入 Firebase 時,您需要 您必須使用 gsutil 工具,包含在 Google Cloud SDK

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

如需查看專案編號,請參閱 Firebase 專案

由於新建立的值區已具備預設存取權,因此不會受到影響 控制項設為允許 Firebase。這只是暫時性措施, 自動執行

使用自訂 Firebase 應用程式

如果您使用自訂 FirebaseApp 建構更複雜的應用程式,可以 建立使用該應用程式初始化的 Storage 執行個體:

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"];
    

後續步驟