Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

開始使用適用於 C++ 的 Cloud Storage

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

在你開始之前

之前,你可以使用雲存儲,您需要:

  • 註冊您的 C++ 項目並將其配置為使用 Firebase。

    如果您的 C++ 項目已經使用 Firebase,那麼它已經為 Firebase 註冊和配置。

  • 添加火力地堡C ++ SDK到C ++項目。

注意添加火力地堡到C ++項目既包括在任務火力地堡控制台,並在您打開C ++項目(例如,您從控制台下載火力地堡的配置文件,然後將其移動到你的C ++項目)。

創建默認 Cloud Storage 存儲分區

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

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

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

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

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

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

  4. 點擊完成

設置公共訪問

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

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

創建和初始化firebase::App

之前,你可以訪問雲存儲,你需要創建和初始化firebase::App

包括頭文件firebase::App

#include "firebase/app.h"

安卓

創建firebase::App ,通過JNI的環境和jobject參考Java的活動作為參數:

app = App::Create(AppOptions(), jni_env, activity);

iOS

創建firebase::App

app = App::Create(AppOptions());

進入firebase::storage::Storage

firebase::storage::Storage類是雲存儲C ++ SDK的入口點。

Storage* storage = Storage::GetInstance(app);

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

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

高級設置

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

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

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

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

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

使用多個 Cloud Storage 存儲分區

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

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("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 應用

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

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

下一步