開始使用 Cloud Storage for Unity

Cloud Storage for Firebase 可讓您上傳及分享使用者原創內容,例如圖片和影片,在應用程式中建構多媒體內容。您的資料會儲存在Google Cloud Storage bucket 中,這是 exabyte 級的物件儲存空間解決方案,具備高可用性和全球備援機制。Cloud Storage for Firebase 可讓您直接從行動裝置和網路瀏覽器安全上傳這些檔案,輕鬆處理網路不穩定的情況。

事前準備

如要使用 Cloud Storage, 請先完成下列步驟:

  • 註冊 Unity 專案並設定使用 Firebase。

    • 如果 Unity 專案已使用 Firebase,則專案已註冊並設定 Firebase。

    • 如果沒有 Unity 專案,可以下載範例應用程式

  • Firebase Unity SDK (具體來說是 FirebaseStorage.unitypackage) 新增至 Unity 專案。

請注意,將 Firebase 新增至 Unity 專案時,您需要在Firebase控制台和開啟的 Unity 專案中執行工作 (例如從控制台下載 Firebase 設定檔,然後移至 Unity 專案)。

此外,請確認 Firebase 專案採用即付即用 Blaze 定價方案。自 2024 年 10 月起,這項方案已成為必要條件 (請參閱常見問題)。如果您剛開始使用 Firebase 和 Google Cloud,請確認是否符合 $300 美元抵免額的資格。

建立預設 Cloud Storage bucket

  1. Firebase 控制台的導覽窗格中,選取「儲存空間」

    如果專案尚未採用即付即用 Blaze 定價方案,系統會提示您升級專案。

  2. 按一下「開始使用」

  3. 選取預設值區的位置

  4. 設定預設 bucket 的 Firebase Security Rules。開發期間,請考慮設定公開存取規則

  5. 按一下「完成」

現在您可以在 Firebase 控制台的「檔案」Cloud Storage分頁中查看 bucket。預設 bucket 名稱格式為 PROJECT_ID.firebasestorage.app

設定公開存取權

Cloud Storage for Firebase 提供宣告式規則語言,可讓您定義資料結構、索引方式,以及資料的讀取和寫入時機。根據預設,系統會限制 Cloud Storage 的讀取和寫入權限,因此只有通過驗證的使用者才能讀取或寫入資料。如要開始使用,但不想設定 Authentication,可以設定公開存取規則

這會讓任何人都能存取 Cloud Storage,即使對方未使用您的應用程式也一樣,因此請務必在設定驗證時再次限制 Cloud Storage

存取 FirebaseStorage 類別

Firebase.Storage.FirebaseStorageCloud Storage Unity SDK 的進入點。

// Get a reference to the storage service, using the default Firebase App
FirebaseStorage storage = FirebaseStorage.DefaultInstance;

你可以開始使用 Cloud Storage 了!

下一步該怎麼做?瞭解如何建立 Cloud Storage 參照

進階設定

部分用途需要額外設定:

如果您有遍布全球的使用者,並希望將資料儲存在使用者附近,第一個用途就非常適合。舉例來說,您可以在美國、歐洲和亞洲建立值區,儲存這些地區使用者的資料,以縮短延遲時間。

如果資料的存取模式不同,第二個用途就很有幫助。舉例來說,您可以設定多區域或區域型值區,儲存圖片或其他經常存取的內容,並設定 Nearline 或 Coldline 值區,儲存使用者備份或其他不常存取的內容。

在上述任一使用情況下,您都會使用多個 Cloud Storage 值區

如果您要建構的應用程式 (例如 Google 雲端硬碟) 允許使用者登入多個帳戶 (例如個人帳戶和公司帳戶),第三個用途就非常實用。您可以使用自訂 Firebase 應用程式例項,驗證每個額外帳戶。

使用多個 Cloud Storage 值區

如要使用上述預設值以外的 Cloud Storage 值區,或在單一應用程式中使用多個 Cloud Storage 值區,可以建立參照自訂值區的 FirebaseStorage 執行個體:

// Get a non-default Storage bucket
var storage = FirebaseStorage.GetInstance("gs://my-custom-bucket");

使用匯入的值區

將現有 Cloud Storage bucket 匯入 Firebase 時,您必須使用 Google Cloud SDK 隨附的 gsutil 工具,授予 Firebase 存取這些檔案的權限:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME

如要找出專案編號,請參閱 Firebase 專案簡介

這不會影響新建立的 bucket,因為這些 bucket 的預設存取權控制項已設為允許 Firebase。這項措施只是暫時解決方案,日後會自動執行。

使用自訂 Firebase 應用程式

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

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.GetInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage storageCustom = FirebaseStorage.GetInstance(customApp, "gs://my-custom-bucket");

後續步驟