開始在 iOS 上使用 Cloud Storage

Cloud Storage for Firebase 可讓您上傳和共享用戶生成的內容,例如圖像和視頻,這樣您就可以將富媒體內容構建到您的應用中。您的數據存儲在谷歌雲存儲桶-具有高可用性和冗餘全球的艾字節規模的對象存儲解決方案。 Cloud Storage for Firebase 可讓您直接從移動設備和網絡瀏覽器安全地上傳這些文件,輕鬆處理不穩定的網絡。

先決條件

  1. 安裝火力地堡SDK
  2. 您的應用程序添加到在你的項目火力地堡火力地堡控制台

創建默認 Cloud Storage 存儲分區

  1. 從導航窗格中火力地堡控制台,選擇存儲,然後點擊開始使用

  2. 查看有關使用安全規則保護 Cloud Storage 數據的消息。在開發過程中,考慮向公眾開放在設置規則

  3. 選擇一個位置作為默認雲端存儲分區。

    • 此位置設置項目的默認谷歌雲平台(GCP)資源位置。請注意,這個位置將在項目中需要的位置設置,具體地講,您可以使用GCP服務雲公司的FireStore數據庫和您的App Engine應用程序(如果你使用雲調度器是必需的)。

    • 如果您無法選擇位置,則您的項目已經具有默認 GCP 資源位置。它是在項目創建期間或在設置另一個需要位置設置的服務時設置的。

    如果你在大火計劃,你可以創建多個桶,每個都有自己的位置

  4. 點擊完成

設置公共訪問

Cloud Storage for Firebase 提供了一種聲明性規則語言,可讓您定義數據的結構、索引方式以及何時可以讀取和寫入數據。默認情況下,對 Cloud Storage 的讀寫訪問受到限制,因此只有經過身份驗證的用戶才能讀取或寫入數據。為了不設置開始認證,你可以配置你的規則,供公眾查閱

這確實使 Cloud Storage 向任何人開放,即使是不使用您的應用程序的人,因此在設置身份驗證時請務必再次限制您的 Cloud Storage。

將 Cloud Storage 添加到您的應用程序

  1. 對於雲存儲的依賴添加到項目中的Podfile

    pod 'Firebase/Storage'
    
  2. 運行pod install並打開創建.xcworkspace文件。

設置雲存儲

在創建或使用任何 Firebase 引用之前,您必須初始化 Firebase。如果您已經為其他 Firebase 功能執行了此操作,則可以跳過此步驟。

  1. 導入火力地堡模塊在UIApplicationDelegate

    迅速

    import Firebase

    目標-C

    @import Firebase;
  2. 配置一個FirebaseApp共享實例,通常在你的應用程序的application:didFinishLaunchingWithOptions:方法:

    迅速

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    目標-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. 使用默認 Firebase 應用獲取對 Cloud Storage 服務的引用:

    迅速

    let storage = Storage.storage()
    

    目標-C

    FIRStorage *storage = [FIRStorage storage];
    

您已準備好開始使用 Cloud Storage!

首先,讓我們來學習如何創建一個雲存儲的參考

高級設置

有一些用例需要額外設置:

如果您的用戶遍布世界各地,並且希望將他們的數據存儲在他們附近,那麼第一個用例是完美的。例如,您可以在美國、歐洲和亞洲創建存儲桶,為這些地區的用戶存儲數據以減少延遲。

如果您的數據具有不同的訪問模式,則第二個用例很有幫助。例如:您可以設置一個多區域或區域存儲桶,用於存儲圖片或其他經常訪問的內容,以及一個近線或冷線存儲桶,用於存儲用戶備份或其他不常訪問的內容。

在這兩種使用情況下,你要使用多個雲存儲桶

如果您正在構建一個應用程序,例如 Google Drive,那麼第三個用例很有用,它允許用戶擁有多個登錄帳戶(例如,一個個人帳戶和一個工作帳戶)。您可以使用自定義的火力地堡應用實例每增加一個帳戶進行身份驗證。

使用多個 Cloud Storage 存儲分區

如果你想使用雲存儲桶不是上述提供,或在一個單一的應用程序使用多個雲端存儲分區默認另一方面,你可以創建一個實例FIRStorage引用您的自定義鬥:

迅速

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

目標-C

// Get a non-default Cloud Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
    

使用導入的存儲桶

當導入現有的雲端存儲到火力地堡,你將有權授予火力地堡訪問使用這些文件的能力gsutil工具,包括在谷歌雲SDK

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

你可以找到在描述你的項目數量介紹火力地堡項目

這不會影響新創建的存儲桶,因為它們的默認訪問控制設置為允許 Firebase。這是一個臨時措施,將來會自動執行。

使用自定義 Firebase 應用

如果您正在構建使用自定義的更複雜的應用程序FirebaseApp ,您可以創建的實例Storage與應用程序初始化:

迅速

// 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")
    

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

下一步