Firebase 常見問題

有其他問題或未在下方找到您的問題嗎?請回報錯誤或要求新功能,並加入 Stack Overflow 討論。

Firebase 專案和 Firebase 應用程式

Firebase 專案是 Firebase 的頂層實體。您可以在專案中註冊 Apple、Android 或網頁應用程式。將應用程式註冊至 Firebase 後,您可以將特定產品的 Firebase SDK 新增至應用程式,例如 AnalyticsCloud FirestoreCrashlyticsRemote Config

您應在單一 Firebase 專案中註冊 Apple、Android 和網頁應用程式變化版本。您可以使用多個 Firebase 專案來支援多個環境,例如開發、測試和正式環境。

如要進一步瞭解 Firebase 專案,請參考下列資源:

  • 瞭解 Firebase 專案:簡要概述 Firebase 專案的幾個重要概念,包括與 Google Cloud 的關係,以及專案、應用程式和資源的基本階層。
  • 設定 Firebase 專案的一般最佳做法:提供設定 Firebase 專案的一般高層級最佳做法,以及將應用程式註冊至專案的做法,讓您能明確掌握使用不同環境的開發工作流程。

請注意,對於所有 Firebase 專案,Firebase 會在 Google Cloud 控制台的標籤頁面中,為您的專案自動新增 firebase:enabled 標籤。如要進一步瞭解這個標籤,請參閱常見問題

Google Cloud 機構是 Google Cloud 專案 (包括 Firebase 專案) 的容器。這個階層可讓您更有效率地組織、管理存取權,以及稽核 Google Cloud 和 Firebase 專案。詳情請參閱「建立及管理機構」。

您可能有透過 Google Cloud 控制台或 Google API 控制台管理的現有 Google Cloud 專案。

您可以使用下列任一選項,將 Firebase 新增至這些現有的 Google Cloud 專案:

進一步瞭解如何將 Firebase 新增至 Google Cloud 專案

Firebase 與 Google Cloud 緊密整合。Firebase 和 Google Cloud 會共用專案,因此專案可以啟用 Firebase 服務和 Google Cloud 服務。您可以透過 Firebase 主控台或 Google Cloud 主控台存取相同專案。具體違規事項如下:

  • 某些 Firebase 產品 (例如 Cloud Storage for Firebase) 直接由 Google Cloud 提供支援。Google Cloud 支援的產品清單會隨著時間持續增加。
  • 可共用多項設定,包括協作者和帳單資訊。Google Cloud您同時使用 Firebase 和 Google Cloud 的用量會顯示在同一張帳單上。

此外,升級至 Blaze 方案後,您就能以標準 Google Cloud 價格,直接在 Firebase 專案中使用 Google Cloud 的任何世界級基礎架構式服務和 API。您也可以直接將資料從 Google Cloud 匯出至 BigQuery 進行分析。詳情請參閱「連結 BigQuery 與 Firebase」。

與其他非同地部署的雲端服務相比,使用 Google Cloud 搭配 Firebase 可帶來許多安全性提升、延遲改善和節省時間的好處。詳情請參閱 Google Cloud 網站

Google Cloud 主控台的專案「標籤」頁面中,您可能會看到 firebase:enabled 標籤 (具體來說,KeyfirebaseValueenabled)。

Firebase 會自動新增這個標籤,因為您的專案是 Firebase 專案,也就是說,您的專案已啟用 Firebase 專屬設定和服務。進一步瞭解 Firebase 專案與 Google Cloud 之間的關係。

強烈建議您不要修改或刪除這個標籤。Firebase 和 Google Cloud 會使用這個標籤列出您的 Firebase 專案 (例如,使用 REST API projects.list 端點Firebase 主控台中的選單)。

請注意,手動將這個標籤新增至專案標籤清單,並不會為 Google Cloud 專案啟用 Firebase 專屬設定和服務。如要這樣做,您必須使用 Firebase 控制台 (或針對進階用途使用 Firebase 管理 REST APIFirebase CLI) 新增 Firebase。

如果您在下列位置找不到 Firebase 專案,請參閱本常見問題:

  • Firebase 控制台中查看的專案清單中
  • 在呼叫 REST API projects.list 端點的回應中
  • 執行 Firebase CLI 指令的回應中 firebase projects:list

請嘗試下列疑難排解步驟:

  1. 首先,請直接造訪專案的網址,嘗試存取專案。請使用下列格式:
    https://console.firebase.google.com/project/PROJECT_ID/overview
  2. 如果您無法存取專案或收到權限錯誤,請檢查下列事項:
    • 請確認您是使用具有專案存取權的 Google 帳戶登入 Firebase。您可以透過主控台右上角的帳戶顯示圖片,登入及登出 Firebase 主控台。
    • 檢查是否可以在 Google Cloud 控制台中查看專案。
    • 請確認專案在 Google Cloud 主控台的「Labels」頁面中,有專屬的 firebase:enabled 標籤。Firebase 和 Google Cloud 會使用這個標籤列出您的 Firebase 專案。如果您沒有看到這個標籤,但專案已啟用 Firebase Management API,請手動新增標籤 (具體來說,就是 Keyfirebase,其中 Valueenabled)。
    • 請確認您已獲派 基本 IAM 角色 (擁有者、編輯者、檢視者) 或具備 Firebase 相關權限的角色,例如 Firebase 預先定義的角色。您可以在 Google Cloud 主控台的「IAM頁面中查看自己的角色。
    • 如果您的專案屬於 Google Cloud 機構,您可能需要額外的權限,才能在 Firebase 主控台中查看列出的專案。請與管理 Google Cloud 組織的人員聯絡,要求對方授予您適當的角色,以便查看專案,例如瀏覽者角色。

如果上述疑難排解步驟無法讓您在 Firebase 專案清單中看到專案,請與 Firebase 支援團隊聯絡。

  • Spark 定價方案:專案建立配額僅限於少數專案 (通常約 5 到 10 個)。
  • Blaze 定價方案:專案建立配額仍有限制,但如果連結狀況良好的 Cloud Billing 帳戶,可能會增加。

大多數開發人員不太在意專案建立配額的上限,但如有需要,您可以要求增加專案配額

請注意,專案必須經過 30 天才能徹底刪除,且在刪除前會計入專案配額。

Firebase 專案是 Apple、Android 和網頁版 Firebase 應用程式的容器。Firebase 限制 Firebase 專案中的 Firebase 應用程式總數為 30 個。

超過這個數量後,效能就會開始降低 (Google Analytics 尤其如此),如果應用程式數量更高,部分產品功能最終會停止運作。此外,如果您使用 Google 登入做為驗證服務供應器,系統會為專案中的每個應用程式建立基礎 OAuth 2.0 用戶端 ID。在單一專案中,您最多只能建立約 30 個用戶端 ID。

從使用者角度來看,請確保單一 Firebase 專案中的所有 Firebase 應用程式都是相同應用程式的平台變化版本。舉例來說,如果您開發白牌應用程式,每個獨立標記的應用程式都應有專屬的 Firebase 專案,但該標記的 Apple 和 Android 版本可位於同一專案中。如需更詳細的說明,請參閱設定 Firebase 專案的一般最佳做法

如果您的專案需要超過 30 個應用程式 (極少見),可以申請提高應用程式數量上限。您必須將專案升級至 Blaze 定價方案,才能提出這項要求。請前往 Google Cloud 控制台提出申請,並進行評估。如要進一步瞭解配額管理,請參閱 Google Cloud 說明文件。

Firebase 主控台中,您可以為 Firebase 專案加上環境類型標記,例如「實際工作環境」或「未指定」(非實際工作環境)。

將專案標記為環境類型不會影響 Firebase 專案的運作方式或功能。不過,標記功能可協助您和團隊管理應用程式生命週期中的各種 Firebase 專案。

如果您將專案標記為正式環境,我們會在 Firebase 控制台中為專案新增亮色「正式環境」標記,提醒您任何變更都可能影響相關的正式版應用程式。未來,我們可能會為標示為正式環境的 Firebase 專案新增更多功能和安全防護機制。

如要變更 Firebase 專案的環境類型,請依序前往 專案設定 >「一般」,然後在「環境」下方的「您的專案」資訊卡中,按一下 變更環境類型。

Firebase 主控台中,前往 專案設定。向下捲動至「您的應用程式」資訊卡,然後按一下所需的 Firebase 應用程式,即可查看應用程式資訊,包括「應用程式 ID」

以下是一些 App ID 值範例:

  • Firebase iOS 應用程式:1:1234567890:ios:321abc456def7890
  • Firebase Android 應用程式:1:1234567890:android:321abc456def7890
  • Firebase 網頁應用程式:1:1234567890:web:321abc456def7890
  • 如要連結 Google Play 帳戶,您需要:
    • 在 Firebase 擔任下列任一角色:擁有者或 Firebase 管理員
    • 下列任一 Google Play 存取層級:帳戶擁有者或管理員
  • 如要連結 AdMob 應用程式,您必須同時具備 Firebase 專案擁有者和 AdMob 管理員的身分。
  • 如要連結 AdWords 帳戶,您必須同時是 Firebase 專案擁有者和 AdWords 管理員。
  • 如要連結 BigQuery 專案,您必須是 Firebase 專案負責人。

在 Apple 平台上,Firebase Pod 會包含 NOTICES 檔案,其中包含相關項目。Firebase Android SDK 包含用於顯示授權資訊的 helper Activity

Firebase 專案的權限和存取權

如要管理指派給每位專案成員的角色,您必須是 Firebase 專案的擁有者 (或指派具有 resourcemanager.projects.setIamPolicy 權限的角色)。

您可以透過下列方式指派及管理角色:

如果專案擁有者無法再執行擁有者的工作 (例如離開公司),且您的專案並非透過 Google Cloud 組織管理 (請參閱下一節),您可以聯絡 Firebase 支援團隊,詢問如何申請 Firebase 專案存取權。

請注意,如果 Firebase 專案屬於 Google Cloud 機構,可能就沒有擁有者。如果找不到 Firebase 專案的擁有者,請與管理 Google Cloud 組織的人員聯絡,請對方指派專案擁有者。

你可以在下列位置查看專案成員及其角色:

  • 如果您有權存取 Firebase 主控台中的專案,就可以在 Firebase 主控台的使用者和權限頁面中查看專案成員清單,包括擁有者。
  • 如果您無法存取 Firebase 控制台中的專案,請確認您是否可以存取 Google Cloud 控制台中的專案。您可以在 Google Cloud 控制台的「身分與存取權管理」頁面中,查看專案成員 (包括擁有者) 清單。

如果專案擁有者無法再執行擁有者的工作 (例如該人已離職),且您的專案並非透過 Google Cloud 組織管理 (請參閱下一節),您可以聯絡 Firebase 支援團隊,請他們指派臨時擁有者。

請注意,如果 Firebase 專案屬於 Google Cloud 機構,可能就沒有擁有者。相反地,管理 Google Cloud 機構的使用者可以執行許多擁有者可以執行的工作。不過,如果要執行幾項擁有者專屬的工作 (例如指派角色或管理 Google Analytics 資源),管理員可能需要指派自己為實際擁有者角色,才能執行這些工作。如果找不到 Firebase 專案的擁有者,請與管理 Google Cloud 組織的人員聯絡,請對方指派專案擁有者。

為確保 Firebase 專案獲得妥善管理,該專案必須有擁有者

具備「擁有者」角色的專案成員通常是唯一可以執行管理工作或接收重要通知的專案成員

  • 具備擁有者角色的專案成員通常是唯一可執行重要管理作業 (例如指派角色和管理 Google Analytics 資源) 的成員,而 Firebase 支援團隊只能處理已證明的專案擁有者提出的管理要求。
  • 擁有擁有者角色的專案成員通常是 (預設) 唯一會收到專案或產品異動通知的成員 (例如帳單和法律異動、功能淘汰等)。如果您希望特定或其他專案成員收到通知,可以選擇自訂專案的「重要聯絡人」

為 Firebase 專案設定擁有者後,請務必隨時更新這些指派。

請注意,如果 Firebase 專案屬於 Google Cloud 機構,管理 Google Cloud 機構的使用者就能執行許多擁有者可執行的作業。不過,如果是幾項擁有者專屬的作業 (例如指派角色或管理 Google Analytics 屬性),管理員可能需要指派自己為實際擁有者角色,才能執行這些作業。

您收到的電子郵件應包含開啟 Firebase 專案的連結。 按一下電子郵件中的連結,即可在 Firebase 控制台中開啟專案。

如果無法透過連結開啟專案,請確認您是使用收到專案電子郵件的 Google 帳戶登入 Firebase。您可以透過主控台右上角的帳戶顯示圖片,登入及登出 Firebase 主控台。

請注意,如果您是 Google Cloud 機構的管理員,系統可能會通知您機構內 Firebase 專案的異動情形。不過,您可能沒有足夠的權限來開啟 Firebase 專案。在這種情況下,最簡單的解決方法就是指派實際擁有者角色給自己,以便開啟專案並執行必要操作。進一步瞭解指派擁有者角色的原因和時機



平台和架構

請參閱特定平台的疑難排解與常見問題頁面,取得實用提示和常見問題的解答。



Firebase 控制台

您可以透過最新版的熱門桌面瀏覽器存取 Firebase 主控台,例如 Chrome、Firefox、Safari 和 Edge。目前不完全支援行動瀏覽器。

如果您遇到下列任一問題,這篇常見問題將適用於您:

  • Firebase 主控台傳回錯誤頁面,指出您的專案可能不存在,或您沒有專案存取權。
  • 即使您在控制台的搜尋欄位中輸入專案 ID 或專案名稱,Firebase 主控台也不會顯示您的專案。

請嘗試下列疑難排解步驟:

  1. 首先,請直接造訪專案的網址,嘗試存取專案。請使用下列格式:
    https://console.firebase.google.com/project/PROJECT-ID/overview
  2. 如果您仍無法存取專案或收到權限錯誤,請檢查下列事項:
    • 請確認您是使用具有專案存取權的 Google 帳戶登入 Firebase。您可以透過主控台右上角的帳戶顯示圖片,登入及登出 Firebase 主控台。
    • 請確認專案已啟用 Firebase Management API
    • 請確認您已獲派 基本身分與存取權管理角色 (擁有者、編輯者、檢視者) 或具備 Firebase 相關權限的角色,例如 Firebase 預先定義的角色。您可以在 Google Cloud 主控台的「IAM頁面中查看自己的角色。
    • 如果您的專案屬於 Google Cloud 機構,您可能需要額外權限,才能在 Firebase 主控台中查看列出的專案。請與管理 Google Cloud 組織的人員聯絡,要求對方授予您適當的角色,以便查看專案,例如瀏覽者角色。

如果上述疑難排解步驟都無法讓您找到或存取專案,請與 Firebase 支援團隊聯絡。

如果遇到下列任一問題,這篇常見問題文章將適用於您:

  • Firebase 主控台中的網頁永遠無法完成載入。
  • 頁面中的資料無法如預期載入。
  • 載入 Firebase 主控台時,您會收到瀏覽器錯誤訊息。

請嘗試下列疑難排解步驟:

  1. 查看 Firebase 狀態資訊主頁的「控制台」列,確認是否有任何服務中斷情形。
  2. 確認你使用的是支援的瀏覽器
  3. 請嘗試在無痕模式或私密瀏覽視窗中載入 Firebase 控制台。
  4. 停用所有瀏覽器擴充功能。
  5. 確認網路連線並未遭到廣告攔截器、防毒軟體、Proxy、防火牆或其他軟體封鎖。
  6. 請嘗試使用其他網路或裝置載入 Firebase 控制台。
  7. 如果使用 Chrome,請檢查開發人員工具主控台是否顯示任何錯誤

如果上述疑難排解步驟都無法解決問題,請與 Firebase 支援團隊聯絡。

Firebase 主控台的語言設定會根據您在 Google 帳戶設定中選取的語言而定。

如要變更語言偏好設定,請參閱「變更語言」一文。

Firebase 控制台支援下列語言:

  • 英文
  • 巴西葡萄牙文
  • 法文
  • 德文
  • 印尼文
  • 日文
  • 韓文
  • 俄語
  • 簡體中文
  • 西班牙文
  • 繁體中文

Firebase 控制台和 Google Cloud 控制台使用相同的基礎角色和權限。如要進一步瞭解角色和權限,請參閱 Firebase IAM 說明文件

Firebase 支援基本角色,包括擁有者、編輯者和檢視者:

  • 專案擁有者可以將其他成員加入專案、設定整合 (將專案連結至 BigQuery 或 Slack 等服務),並擁有專案的完整編輯存取權。
  • 專案編輯者具備專案的完整編輯存取權。
  • 專案的檢視者只有專案的唯讀存取權。請注意,Firebase 主控台目前不會隱藏/停用專案檢視者的編輯 UI 控制項,但如果專案成員已指派檢視者角色,這些作業就會失敗。

Firebase 也支援以下功能:

  • Firebase 預先定義角色:精選的 Firebase 專屬角色,可提供比「擁有者」、「編輯者」和「檢視者」等基本角色更精細的存取控管功能。
  • 自訂角色:這是您自行建立的角色。您可以透過自訂角色來設置一組權限,以符合貴機構的特定需求。



Firebase Local Emulator Suite

這則訊息表示 Emulator Suite 偵測到它可能會使用不同的專案 ID 執行特定產品模擬器。這可能表示設定錯誤,並可能導致模擬器嘗試彼此通訊,以及您嘗試透過程式碼與模擬器互動時發生問題。如果專案 ID 不相符,系統通常會顯示資料遺失,因為在模擬器中儲存的資料會以專案 ID 做為索引,而互通性則取決於專案 ID 是否相符。

這一直是開發人員常見的疑惑來源,因此現在 Local Emulator Suite 預設只允許使用單一專案 ID 執行,除非您在 firebase.json 設定檔中指定其他情況。如果模擬器偵測到多個專案 ID,就會記錄警告,並可能擲回致命錯誤。

請檢查專案 ID 宣告是否有以下不相符之處:

  • 指令列中設定的預設專案。根據預設,系統會在啟動時從使用 firebase initfirebase use 所選專案中取得專案 ID。如要查看專案清單 (以及查看已選取哪個專案),請使用 firebase projects:list
  • 單元測試。在呼叫規則單元測試程式庫方法 initializeTestEnvironmentinitializeTestApp 時,通常會指定專案 ID。其他測試程式碼可能會使用 initializeApp(config) 進行初始化。
  • 指令列 --project 標記。傳遞 Firebase CLI --project 標記會覆寫預設專案。您必須確保標記的值與單元測試和應用程式初始化的專案 ID 相符。

請查看平台特定位置:

網頁 JavaScript firebaseConfig 物件中的 projectId 屬性,用於 initializeApp
Android google-services.json 設定檔中的 project_id 屬性。
Apple 平台 GoogleService-Info.plist 設定檔中的 PROJECT_ID 屬性。

如要停用單一專案模式,請使用 singleProjectMode 鍵更新 firebase.json

{
  "firestore": {
    ...
  },
  "functions": {
    ...
  },
  "hosting": {
    ...
  },
  "emulators": {
    "singleProjectMode": false,
    "auth": {
      "port": 9099
    },
    "functions": {
      "port": 5001
    },
    ...
  }
}



定價

如需特定產品的價格常見問題,請參閱本頁的產品專區或專屬產品說明文件。

Firebase 付費基礎架構產品包括 Realtime DatabaseCloud Storage for FirebaseCloud FunctionsHostingTest Lab 和電話驗證。我們提供免費方案,可使用所有這些功能。

Firebase 也提供許多免費產品:AnalyticsCloud Messaging、通知編輯器、Remote ConfigApp IndexingDynamic LinksCrash Reporting。使用這些產品時,只需遵守所有方案 (包括免費的 Spark 方案) 中產品的流量控制政策 (例如配額、公平存取權和其他服務保護措施)。此外,除了手機驗證功能外,所有 Authentication 功能均免費。

您可以透過 Google Cloud 免費試用方案使用 Firebase 付費服務。Google Cloud 和 Firebase 的新使用者可享有 $300 美元的 Cloud Billing 免費抵免額,可以在 90 天的試用期內盡情體驗及評估 Google Cloud 和 Firebase 的各項產品和服務。

Google Cloud 免費試用期內,您將獲得免費試用 Cloud Billing 帳戶。在免付費試用期內,任何使用該帳單帳戶的 Firebase 專案都會採用 Blaze 定價方案。

請放心,設定免費試用 Cloud Billing 帳戶並不會啟動收費機制。除非您將免費試用 Cloud Billing 帳戶升級為付費帳戶,否則我們不會向您收費。在試用期間內,您隨時可以升級為付費帳戶。升級後仍可繼續使用剩餘的抵免額 (90 天內)。

免費試用期結束後,您必須將專案降級至 Spark 定價方案,或是在 Firebase 控制台中設定 Blaze 定價方案,才能繼續使用 Firebase 專案。

進一步瞭解 Google Cloud 免費試用方案

Spark 定價方案

您可以使用免付費的 Spark 方案開發應用程式。您可以使用所有免費的 Firebase 功能 (Analytics、通知編輯器、Crashlytics 等),以及大量付費基礎架構功能。不過,如果您在某個日曆月份中超過 Spark 方案的資源上限,應用程式會在該月剩餘期間關閉。此外,使用 Spark 方案時無法使用 Google Cloud 功能。

Blaze 定價方案

Blaze 方案專為正式版應用程式而設計。升級至 Blaze 方案之後,您也可以使用付費的 Google Cloud 功能擴充應用程式。您只需要為實際使用的資源付費,因此可以視需求調度資源。我們致力於讓 Blaze 方案的價格與業界領先的雲端服務供應商相競爭。

可以,您隨時可以升級、降級或取消訂閱。請注意,我們不會針對降級或取消訂閱提供按比例退款。也就是說,如果您在帳單週期結束前降級或取消訂閱,仍須支付當月剩餘天數的費用。

Blaze 方案的免費用量會每日計算。Cloud Functions、電話驗證和 Test Lab 的用量限制也與 Spark 方案不同。

對於 Cloud Functions,Blaze 方案的免付費用量計算方式是以 Cloud Billing 帳戶層級為準,而非專案層級,且有以下限制:

  • 每月 200 萬次叫用
  • 每月 40 萬 GB 秒
  • 每月 200K CPU-秒
  • 每月 5 GB 網路輸出量

電話驗證的免付費 Blaze 方案用量會以每月計算。

對於 Test Lab,Blaze 方案的免付費用量有下列限制:

  • 30 分鐘/天 (實體裝置)
  • 60 分鐘/天 (虛擬裝置)

Blaze 方案包含 Spark 方案的免付費用量。改用 Blaze 方案時,免付費用量不會重設。

如果在 Google Cloud 主控台的專案中新增 Cloud Billing 帳戶,如果該專案目前使用的是 Spark 方案,系統就會自動將該專案升級為 Firebase Blaze 方案。

相反地,如果從 Google Cloud 主控台的專案中移除現有的有效 Cloud Billing 帳戶,該專案會降級至 Firebase Spark 方案。

您可以在 Firebase 主控台的下列任一資訊主頁中,追蹤專案資源的用量:

不行,目前無法設定 Blaze 方案用量上限。我們正在評估如何支援 Blaze 方案用量上限。

Blaze 使用者可以為專案或帳戶設定預算,並在支出接近上限時收到快訊。瞭解如何設定預算快訊

所有 Firebase 應用程式 (包括使用免費方案的應用程式) 均享有 Firebase 團隊在美國太平洋時間營業時間內提供的電子郵件支援服務。所有帳戶都能享有不限次數的帳單、帳戶、技術 (疑難排解) 問題和事件報表支援服務。

任何類型的個人或機構 (包括非營利機構、學校和開放原始碼專案) 皆可使用 Spark 方案。由於這些方案已包含充裕配額,我們不會為開放原始碼、非營利或教育專案提供任何特別折扣或方案。

Blaze 方案適合各種規模的企業,且服務水準協議符合或超越雲端基礎架構的業界標準。不過,我們目前不提供企業合約、價格或支援服務,也不會為 Realtime Database 等服務提供專屬基礎架構代管服務 (也就是內部安裝)。我們正在努力加入其中一些功能。

我們在 Blaze 方案中提供特別定價,您只需為實際使用的功能付費。

Firebase 定價方案與 Ads 分開,因此沒有免費的廣告抵免額。身為 Firebase 開發人員,您可以將 Ads 帳戶「連結」至 Firebase,以支援轉換追蹤。

所有廣告活動都會直接在 Ads 中管理,而 Ads 帳單則會透過 Ads 資訊主頁管理。

2020 年 1 月起,Flame 價格方案 (每月 $25 美元的額外配額) 已從新註冊方案中移除。現有方案使用者可在寬限期內將專案從 Flame 方案移出。2022 年 2 月,Flame 定價方案的其餘專案已降級至 Spark 定價方案。
因此,

  • 現有的 Spark 和 Blaze 方案專案,以及任何新專案,都無法再轉換或註冊 Flame 方案。
  • 如果您將現有的 Flame 方案專案移至其他定價方案,該專案就無法再改回 Flame 方案。
  • 降級至 Spark 方案的專案可以升級至 Blaze 方案,以便恢復額外的付費服務。
  • 說明文件中已移除 Flame 方案的參照。

您還有其他關於 Flame 方案停用的疑問嗎?請參閱下方的其他常見問題

想瞭解 Firebase 提供的其他定價方案嗎?歡迎前往 Firebase 定價頁面瞭解詳情!如果您想開始將任何現有專案移至其他定價方案,可以前往專案的 Firebase 主控台進行這項操作。

關於 Flame 方案停用問題的其他常見問題

請註冊 Blaze 定價方案,並務必設定預算快訊

否,Firebase 不會為要切換或訂閱 Flame 方案的專案提供特殊存取權。

您無法再改用 Flame 方案。如要存取 Flame 方案提供的服務,請確認您使用 Blaze 定價方案,並考慮為專案設定預算快訊

如果專案需要 Spark 方案提供的配額以外的額外配額,就必須將專案升級至 Blaze 定價方案。

多年下來,我們發現 Flame 方案的使用率持續下滑,而且大多數使用該方案的專案並未充分發揮其價值。維持這個定價方案通常不符合成本效益,我們認為將資源用於其他 Firebase 計畫,可以為所有人提供更優質的服務。



隱私權

請參閱「Firebase 隱私權與安全性」頁面。

可以,目前僅適用於 iOS,但日後可能會有所變動。Firebase Apple 平台 SDK 預設會包含 FirebaseCoreDiagnostics 架構。Firebase 會使用這個架構收集 SDK 使用情形和診斷資訊,以便為日後的產品改善作業設定優先順序。FirebaseCoreDiagnostics 為選用項目,因此如果您不想傳送 Firebase 診斷記錄,可以取消應用程式與該程式庫的連結。您可以在 GitHub 上瀏覽完整來源,包括記錄的值。



A/B Testing

每個專案最多可進行 300 項實驗,其中最多可包含 24 項執行中的實驗,其餘則為草稿或已完成的實驗。

如果連結至其他 Google Analytics 資源,您將無法再存取先前建立的實驗。如要重新存取先前的實驗,請將專案重新連結至實驗建立時連結的 Google Analytics 資源。

如果您已連結 Firebase 和 Google Analytics,但仍看到 Google Analytics 未連結的訊息,請確認專案中的所有應用程式都有 Analytics 串流。目前,專案中的所有應用程式都必須連結至 Google Analytics 串流,才能使用 A/B 測試。

您可以在 Firebase 控制台的 Google Analytics 整合詳細資料頁面中找到所有有效串流的清單,方法是前往 「專案設定」「Google Analytics」「管理」

只要為沒有 Google Analytics 串流的應用程式建立串流,即可解決問題。您可以透過下列幾種方式建立缺少應用程式的串流:

  • 如果只有一或兩個應用程式缺少相關聯的 Google Analytics 串流,您可以選擇下列任一方法新增 Google Analytics 串流:
    • 在 Firebase 控制台中刪除並重新新增任何沒有有效串流的應用程式。
    • Google Analytics 控制台中,依序選取「管理」、「資料串流」和「新增串流」,然後新增缺少的應用程式詳細資料,並按一下「註冊應用程式」
  • 如果缺少的應用程式串流超過幾個,取消連結並重新連結 Google Analytics 資源,是建立缺少的應用程式串流最快也最有效率的方式:
    1. 「專案設定」中,選取「整合」
    2. 在「Google Analytics」資訊卡中,按一下「管理」,即可存取 Firebase 和 Google Analytics 設定。
    3. 請記下 Google Analytics 資源 ID已連結的 Google Analytics 帳戶
    4. 按一下 「更多」,然後選取「將這項專案與 Analytics 取消連結」
    5. 查看顯示的警告 (請放心,您會在下一個步驟重新連結相同的資源),然後點選「取消連結 Google Analytics」

      取消連結完成後,系統會將您重新導向至「整合」頁面。
    6. 在「Google Analytics」資訊卡中,按一下「啟用」,即可開始重新連結程序。
    7. 從「選取帳戶」清單中選取 Analytics 帳戶。
    8. 按一下「自動在這個帳戶中建立新資源」旁的 「編輯」,然後從隨即顯示的「Analytics 資源」清單中選取資源 ID。

      畫面上會顯示專案中所有應用程式的清單。系統會列出每個應用程式現有的串流對應項目,如果應用程式沒有串流,系統會為其建立一個串流。
    9. 按一下「啟用 Google Analytics」,重新連結資源。
    10. 按一下「完成」

如果在執行這些步驟後,仍無法使用遠端設定建立 A/B 版本測試,請 與 Firebase 支援團隊聯絡



AdMob

不支援,目前不支援 Windows 應用程式。

您可以透過 AdMob 控制台,將 AdMob 應用程式連結至 Firebase 應用程式。 瞭解詳情

如要進行這項連結,您需要具備下列存取權:

  • AdMob:您必須是 AdMob 管理員。
  • Firebase:您必須具備 firebase.links.create 權限,此權限包含在 擁有者角色Firebase 管理員角色中。
  • Google Analytics:您必須是與 Firebase 專案相關聯資源的「編輯」或「管理使用者」角色。瞭解詳情

對於多使用者 AdMob 帳戶,只有建立第一個 Firebase 連結並接受 Firebase 服務條款的使用者,才能在 AdMob 應用程式和 Firebase 應用程式之間建立新連結。

如要使用 AdMob,請一律使用本常見問題說明中所述的 Google Mobile Ads SDK。此外,如果您想收集 AdMob 的使用者指標,也可以選擇在應用程式中加入 Google Analytics 的 Firebase SDK。

  • 適用於 iOS 專案
    按照 AdMob iOS 說明文件中的操作說明,匯入 Google Mobile Ads SDK。
  • 適用於 Android 專案
    請將 Google Mobile Ads SDK 的依附元件新增至 build.gradle 檔案:
    implementation 'com.google.android.gms:play-services-ads:23.6.0'
  • 針對 C++ 專案Unity 專案:請按照各自說明文件中的指示操作。



數據分析

Google Analytics 是一款免費且無限制的數據分析解決方案,可搭配 Firebase 功能提供精闢的洞察資料。您可以查看 Crashlytics 中的事件記錄、FCM 中的通知成效、Dynamic Links 的深層連結成效,以及 Google Play 中的應用程式內購資料。這項功能可支援 Remote Config 中的進階指定目標對象、Remote Config 個人化設定等功能。

Google AnalyticsFirebase 控制台中的一層智慧功能,可提供更實用的洞察資料,協助您開發高品質應用程式、擴展使用者數量及提高收益。

如要開始使用,請參閱說明文件

根據預設,您的 Google Analytics 資料會用於改善其他 Firebase 和 Google 功能。您隨時可以在專案設定中變更 Google Analytics 資料的共用方式。進一步瞭解資料共用設定

您可以透過 Google Analytics 資源的「管理」頁面更新資源設定,例如:

  • 資料共用設定
  • 資料保留設定
  • 時區和貨幣設定

如要更新資源設定,請按照下列步驟操作:

  1. Firebase 主控台中,依序前往 >「專案設定」。
  2. 前往「整合」分頁,然後在 Google Analytics 資訊卡中按一下「管理」或「查看連結」
  3. 按一下 Google Analytics 帳戶的連結,開啟帳戶和資源設定

可以,詳情請參閱「 設定資料收集和使用行為」頁面。

如要查看這些變更的摘要,請參閱 Firebase 說明中心文章「Google Analytics for Firebase 中的全新 Google Analytics 4 功能」。

Analytics 資料會儲存在 Google Analytics 資源中,而不是 Firebase 專案中。如果您刪除或取消連結資源,Firebase 就無法存取 Analytics 資料,您會在 Firebase 控制台中看到空白的 Analytics 資訊主頁。請注意,由於資料仍位於先前已連結的資源中,您隨時可以將該資源重新連結至 Firebase,並在 Firebase 主控台中查看 Analytics 資料。

將全新 Google Analytics 帳戶 (以及新的 Google Analytics 資源) 連結至 Firebase 專案,會導致 Firebase 控制台的 Analytics 資訊主頁空白。不過,如果先前已連結的資源仍存在,您可以將現有資料從舊資源移至新資源。

否。如果資源已刪除,就無法取消刪除資源,也無法擷取先前收集的 Analytics 資料。

如果您想再次開始使用 Google Analytics,可以將新資源或現有資源連結至 Firebase 專案。您可以在 Firebase 控制台或 Google Analytics 使用者介面中進行這項連結。進一步瞭解如何將 Google Analytics 資源連結至 Firebase 專案

如果您想再次開始使用 Google Analytics,可以將新資源或現有資源連結至 Firebase 專案。您可以在 Firebase 控制台或 Google Analytics 使用者介面中進行這項連結。進一步瞭解如何將 Google Analytics 資源連結至 Firebase 專案

請注意,由於所有 Analytics 資料都儲存在資源 (而非 Firebase 專案) 中,因此無法擷取先前收集的 Analytics 資料。

多項 Firebase 產品都需要整合 Google Analytics。如果 Analytics 資源及其資料遭到刪除,您使用下列產品時會發生下列情況:

  • Crashlytics:您將無法再看到未受當機情況影響的使用者、麵包屑記錄和/或速度快訊。
  • Cloud MessagingIn-App Messaging:您無法再使用指定目標、廣告活動指標、目標對象區隔和數據分析標籤。
  • Remote Config:您無法再使用目標對象明確的設定或個人化功能。
  • A/B Testing:Google Analytics 會提供實驗評估資料,因此您無法再使用 A/B Testing
  • Dynamic Links:任何仰賴 Google Analytics 資料的功能都會中斷。

此外,下列整合功能也會受到影響:

您可以透過「負向指定」這些使用者來重新定義問題。舉例來說,您可以將問題重新定義為「不要向已購買商品的使用者放送廣告」,並建立這些使用者的目標對象

系統會同步處理您的目標對象和使用者屬性。部分功能 (例如區隔和封閉式漏斗) 需要使用 Google Analytics 介面。您可以透過 Firebase 控制台的深層連結,直接存取 Google Analytics 介面。

您在 Firebase 控制台中所做的任何變更,也可以在 Google Analytics 中執行,這些變更也會反映在 Firebase 中。



Authentication

Firebase Authentication 支援全球的電話號碼驗證功能,但並非所有聯播網都能可靠地傳送驗證訊息。以下地區的傳送率相當高,應該可順利進行電話驗證。在某些地區,由於運送成功率不佳,因此無法使用部分貨運公司。

區域 程式碼
廣告安道爾
AE阿拉伯聯合大公國
AF阿富汗
AG安地卡及巴布達
AL阿爾巴尼亞
上午亞美尼亞
AO安哥拉
AR阿根廷
AS美屬薩摩亞
AT奧地利
AU澳洲
AW阿魯巴
AZ亞塞拜然
BA波士尼亞與赫塞哥維納
BB巴貝多
BD孟加拉
BE比利時
BF布吉納法索
BG保加利亞
BJ貝南
BM百慕達
BN汶萊
BO玻利維亞
巴西巴西
BS巴哈馬
BT不丹
BW波札那
BY白俄羅斯
BZ貝里斯
CA加拿大
CD剛果 (金夏沙)
CF中非共和國
CG剛果 (布拉薩)
CH瑞士
CI象牙海岸
CK庫克群島
CL智利
CM喀麥隆
CO哥倫比亞
CR哥斯大黎加
CV維德角
CW古拉索
CY賽普勒斯
CZ捷克共和國
DE德國
DJ吉布地
丹麥丹麥
DM多米尼克
DO多明尼加共和國
DZ阿爾及利亞
EC厄瓜多
EG埃及
ES西班牙
ET衣索比亞
FI芬蘭
FJ斐濟
FK福克蘭群島 (馬爾維納斯)
FM密克羅尼西亞聯邦
FO法羅群島
FR法國
正式發布版加彭
GB英國
GD格瑞那達
GE喬治亞
進球法屬圭亞那
GG根息
GH迦納
GI直布羅陀
GL格陵蘭
總經理甘比亞
GP瓜地洛普
GQ赤道幾內亞
GR希臘
GT瓜地馬拉
GY蓋亞那
HK中國香港特別行政區
HN宏都拉斯
人資克羅埃西亞
HT海地
HU匈牙利
ID印尼
IE愛爾蘭
IL以色列
IM曼島
印度印度
IQ伊拉克
IT義大利
JE澤西島
JM牙買加
JO約旦
日本日本
KE肯亞
KG吉爾吉斯
KH柬埔寨
KM葛摩
KN聖克里斯多福及尼維斯
KR南韓
KW科威特
KY開曼群島
KZ哈薩克
LA寮國
LB黎巴嫩
LC聖露西亞
LI列支敦斯登
LK斯里蘭卡
LS賴索托
LT立陶宛
LU盧森堡
LV拉脫維亞
LY利比亞
MA摩洛哥
MD摩爾多瓦
ME蒙特內哥羅
MF法屬聖馬丁
MG馬達加斯加
MK馬其頓共和國
MM緬甸
MN蒙古
MO中華人民共和國澳門特別行政區
MS蒙哲臘
MT馬爾他
MU模里西斯
MW馬拉威
MX墨西哥
MY馬來西亞
MZ莫三比克
不適用納米比亞
NC新喀里多尼亞
東北尼日
NF諾福克島
NG奈及利亞
NI尼加拉瓜
NL荷蘭
挪威
NP尼泊爾
NZ紐西蘭
OM阿曼
PA巴拿馬
PE秘魯
PG巴布亞紐幾內亞
PH菲律賓
PK巴基斯坦
PL波蘭
下午聖皮埃與密克隆群島
PR波多黎各
PS巴勒斯坦領土
PT葡萄牙
PY巴拉圭
品質確保人員卡達
RE留尼旺
RO羅馬尼亞
RS塞爾維亞
RU俄羅斯聯邦
RW盧安達
SA沙烏地阿拉伯
SC塞席爾
瑞典瑞典
SG新加坡
SH聖赫勒拿島
SI斯洛維尼亞
SK斯洛伐克
SL獅子山
SN塞內加爾
SR蘇利南
ST聖多美普林西比
SV薩爾瓦多
SZ史瓦濟蘭
TC土克凱可群島
TG多哥
泰國泰國
TL東帝汶
TM土庫曼
收件者東加
TR土耳其
TT千里達及托巴哥
台灣中華民國臺灣
TZ坦尚尼亞聯合共和國
通用 Analytics烏克蘭
UG烏干達
美國美國
UY烏拉圭
UZ烏茲別克
VC聖文森及格瑞那丁
VE委內瑞拉 (玻利瓦共和國)
VG英屬維京群島
VI美屬維京群島
VN越南
WS薩摩亞
YE葉門
YT馬約特
ZA南非
ZM尚比亞
ZW辛巴威

自 2024 年 9 月起,為提升電話驗證機制的安全性和服務品質,Firebase 專案必須連結至 Cloud Billing 帳戶,才能啟用及使用簡訊服務。

如要保護專案免於遭到簡訊流量灌水和 API 濫用,請採取下列步驟:

考慮設定簡訊區域政策
  1. 查看區域簡訊用量

    找出傳送簡訊次數非常多,但驗證簡訊次數非常少 (或為零) 的地區。驗證/傳送比率就是成效率。由於 SMS 並非保證可送達的通訊協定,且部分地區可能會發生濫用行為,因此成功率通常介於 70% 至 85% 之間。如果成功率低於 50%,表示雖然傳送了許多簡訊,但成功登入的次數很少,這通常是惡意行為和簡訊流量灌水的常見指標。

  2. 使用簡訊區域政策,拒絕成效率偏低的簡訊區域,或是只允許特定區域 (如果您的應用程式只在特定市場發行)。

限制已授權的驗證網域

使用驗證設定資訊主頁管理授權網域。localhost 網域預設會加入已核准的驗證網域,以簡化開發作業。建議您從實際專案的授權網域中移除 localhost,以免有心人士在他們localhost 上執行程式碼,進而存取您的實際專案。

啟用及強制執行 App Check

啟用 App Check,驗證要求僅來自與專案相關聯的應用程式,以保護專案免於遭到 API 濫用。

如要在 Firebase Authentication 中使用 App Check,您必須升級至 Firebase Authentication with Identity Platform

請注意,您必須在 Firebase 主控台中強制啟用 App Check 驗證功能 (建議您在強制執行前監控流量)。此外,請仔細檢查 reCAPTCHA Enterprise 核准網站清單,確認該清單只包含您的正式網站,且在 App Check 中註冊至專案的應用程式清單正確無誤。

請注意,App Check 會斷言呼叫來自您註冊的其中一個應用程式,藉此防範自動化攻擊。這不會阻止使用者以非預期方式使用應用程式 (例如,啟動但從未完成登入流程,以產生傳送的簡訊)。

目前,從一間電信業者轉移到另一間的號碼,會導致所有簡訊無法傳送給這些使用者。目前沒有解決方法,Firebase 正在處理這個問題。

如果收到以下錯誤訊息,請按照本常見問題中的疑難排解步驟操作:

GoogleFragment: Google sign in failed
    com.google.android.gms.common.api.ApiException: 13: Unable to get token.
        at
com.google.android.gms.internal.auth-api.zbay.getSignInCredentialFromIntent(com.google.android.gms:play-services-auth@@20.3.0:6)
  1. 確認已正確啟用 Google 登入功能做為驗證服務供應器:

    1. Firebase 主控台中,開啟 Authentication 專區

    2. 在「登入方式」分頁中,停用再重新啟用 Google 登入方式 (即使已啟用):

      1. 開啟 Google 登入方式,然後停用該方式,接著點選「儲存」

      2. 重新開啟「Google」登入方式並啟用,然後按一下「儲存」

  2. 請確認應用程式使用的是最新的 Firebase 設定檔 (google-services.json)。
    取得應用程式的設定檔。

  3. 檢查是否仍會收到錯誤訊息。如果是,請繼續進行下一個疑難排解步驟。

  4. 確認已安裝必要的基礎 OAuth 2.0 用戶端。

    1. Google Cloud 控制台的「Credentials頁面中,查看「OAuth 2.0 用戶端 ID」部分。

    2. 如果 OAuth 2.0 用戶端不存在 (且您已完成上述所有疑難排解步驟),請與支援團隊聯絡

如果收到以下錯誤訊息,請按照本常見問題中的疑難排解步驟操作:

You must specify |clientID| in |GIDConfiguration|
  1. 確認已正確啟用 Google 登入功能做為驗證服務供應器:

    1. Firebase 主控台中,開啟 Authentication 專區

    2. 在「登入方式」分頁中,停用再重新啟用 Google 登入方式 (即使已啟用):

      1. 開啟 Google 登入方式,然後停用該方式,接著點選「儲存」

      2. 重新開啟「Google」登入方式並啟用,然後按一下「儲存」

  2. 請確認應用程式使用的是最新的 Firebase 設定檔 (GoogleService-Info.plist)。
    取得應用程式的設定檔。

  3. 檢查是否仍會收到錯誤訊息。如果是,請繼續進行下一個疑難排解步驟。

  4. 確認已安裝必要的基礎 OAuth 2.0 用戶端。

    1. Google Cloud 控制台的「Credentials頁面中,查看「OAuth 2.0 用戶端 ID」部分。

    2. 如果 OAuth 2.0 用戶端不存在 (且您已完成上述所有疑難排解步驟),請與支援團隊聯絡

如果收到以下錯誤訊息,請按照本常見問題中的疑難排解步驟操作:

AuthErrorCode.INVALID_OAUTH_CLIENT_ID
  1. 確認已正確啟用 Google 登入功能做為驗證服務供應器:

    1. Firebase 主控台中,開啟 Authentication 專區

    2. 在「登入方式」分頁中,停用再重新啟用 Google 登入方式 (即使已啟用):

      1. 開啟 Google 登入方式,然後停用該方式,接著點選「儲存」

      2. 重新開啟「Google」登入方式並啟用,然後按一下「儲存」

  2. 此外,在 Authentication 專區的 Google 登入提供者設定中,請確認 OAuth 用戶端 ID 和密碼與 Google Cloud 控制台「憑證」頁面中顯示的網路用戶端相符 (請查看「OAuth 2.0 用戶端 ID專區)。

如果收到以下錯誤訊息,請按照本常見問題中的疑難排解步驟操作:

This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.

這類錯誤最有可能是因為您的重新導向網域未列為 Firebase Authentication 的授權網域,或是您在 Firebase Authentication 服務中使用的 API 金鑰無效。

首先請確認 YOUR_REDIRECT_DOMAIN 已列入 Firebase 專案的已授權網域清單。如果已列出重新導向網域,請繼續排解無效的 API 金鑰問題。

根據預設,Firebase Authentication JS SDK 會依據授權網域清單,使用 Firebase 專案的 API 金鑰 (標示為 Browser key) 驗證登入重新導向網址是否有效。Authentication 會根據您存取 Authentication SDK 的方式取得此 API 金鑰:

  • 如果您使用 Hosting 提供的 Auth 輔助程式,搭配 Authentication JS SDK 讓使用者登入,那麼 Firebase 每次部署至 Firebase Hosting 時,都會自動取得 API 金鑰和其他 Firebase 設定。請確認網頁應用程式 firebaseConfig 中的 authDomain正確設定,以便使用該 Hosting 網站的其中一個網域。您可以前往 https://authDomain__/firebase/init.json 確認這項資訊,並檢查 projectId 是否與 firebaseConfig 中的資訊相符。

  • 如果您自行代管登入程式碼,則可以使用 __/firebase/init.json 檔案,為自行代管的 Authentication JS SDK Redirect helper 提供 Firebase 設定。這個設定檔中列出的 API 金鑰和 projectId 應與您的 網頁應用程式 firebaseConfig 相符。

確認 API 金鑰未遭到刪除:前往 Google Cloud 控制台的 「API 和服務」>「憑證」面板,查看專案的所有 API 金鑰。

  • 如果 Browser key 遭到刪除,請檢查下列項目:

    • 請確認 Firebase Authentication API 位於可存取金鑰的允許 API 清單中 (進一步瞭解 API 金鑰的 API 限制)。

    • 如果您自行代管登入程式碼,請確認 __/firebase/init.json 檔案中列出的 API 金鑰與 Cloud 控制台中的 API 金鑰相符。視需要修正檔案中的鍵,然後重新部署應用程式。

    • 如果 Browser key 已刪除,您可以請 Firebase 為您產生新的 API 金鑰:在 Firebase 控制台中依序前往 >「專案設定」,然後在「您的應用程式」部分,按一下您的網頁應用程式。這項操作會自動建立 API 金鑰,您可以在網頁應用程式的「SDK 設定和設定」部分中看到這組金鑰。

    請注意,在 Cloud 控制台中,這組新的 API 金鑰不會稱為 Browser key,而是會與 Firebase Web 應用程式的暱稱相同。如果您決定對這個新 API 金鑰新增 API 限制,請確認 Firebase Authentication API 位於允許的 API 清單中。

    建立新的 API 金鑰後,請完成下列適用的步驟:

    • 如果您使用保留的 Hosting URL,請將應用程式重新部署至 Firebase,以便應用程式可自動取得新的 API 金鑰,並搭配其他 Firebase 設定。

    • 如果您自行代管登入程式碼,請複製新的 API 金鑰並加進 __/firebase/init.json 檔案,然後重新部署應用程式。

  1. 開啟 Google Cloud 控制台的「憑證頁面。

  2. 在頁面頂端依序選取「Create credentials」>「OAuth client ID」

  3. 如果系統提示您設定同意聲明畫面,請按照畫面上的指示操作,然後繼續執行本常見問題的後續步驟。

  4. 建立 OAuth 網路用戶端:

    1. 在「應用程式類型」部分,選取「網頁應用程式」

    2. 在「已授權的 JavaScript 來源」中,新增下列內容:

      • http://localhost
      • http://localhost:5000
      • https://PROJECT_ID.firebaseapp.com
      • https://PROJECT_ID.web.app
    3. 針對「已授權的重新導向 URI」,請新增下列內容:

      • https://PROJECT_ID.firebaseapp.com/__/auth/handler
      • https://PROJECT_ID.web.app/__/auth/handler
    4. 儲存 OAuth 用戶端。

  5. 將新的 OAuth 用戶端 ID 和用戶端密碼複製到剪貼簿。

  6. Firebase 主控台中,開啟 Authentication 專區

  7. 在「Sign in method」分頁中,開啟「Google sign-in」供應器,然後貼上您剛才建構並從 Google Cloud 主控台複製的用戶端 ID 和密鑰。按一下「儲存」

在 2022 年 12 月之前,電子郵件範本中的 %APP_NAME% 會填入 OAuth 品牌名稱,而這項資訊會在 Android 應用程式註冊至 Firebase 專案時自動佈建。由於 OAuth 品牌僅在啟用 Google 登入時才會提供,因此以下說明如何判斷 %APP_NAME%

  • 如果 OAuth 品牌名稱可用,電子郵件範本中的 %APP_NAME% 就是 OAuth 品牌名稱 (與 2022 年 12 月之前的行為相同)。

  • 如果 OAuth 品牌名稱「無法」使用,請參閱下列說明,瞭解如何判斷電子郵件範本中的 %APP_NAME%

    • 對於網頁應用程式%APP_NAME% 會是預設 Firebase Hosting 網站名稱 (.firebaseapp.com.web.app 前方的值,通常是 Firebase 專案 ID)。

    • 行動應用程式:

      • 如果要求中包含 Android 套件名稱或 iOS 軟體包 ID,%APP_NAME% 就會是 Play 商店或 App Store 中使用的應用程式名稱。

      • 否則,%APP_NAME% 會是預設 Firebase Hosting 網站名稱 (.firebaseapp.com.web.app 前面的值,通常是 Firebase 專案 ID)。

    請注意,如果查詢預設 Firebase Hosting 網站名稱失敗,系統會使用 Firebase 專案 ID 做為 %APP_NAME% 的最終備用值。



Cloud Functions

Cloud Functions 執行階段支援

  1. 請確認您使用的是 Blaze 定價方案
  2. 請確認您使用的是最新版 Firebase CLI。
  3. 更新函式 package.json 中的 engines 欄位
  4. 您也可以選擇使用 Firebase Local Emulator Suite 來測試變更。
  5. 重新部署所有函式。

Firebase 控制台中,前往「函式」資訊主頁,選取函式,然後查看「Additional details」下方的函式語言。

可以,由於擴充功能會使用 Cloud Functions,因此擴充功能的執行階段必須與 Cloud Functions 保持一致。

建議您定期更新專案中安裝的每個擴充功能至最新版本。您可以透過 Firebase 控制台Firebase CLI 升級專案的擴充功能。

Cloud Functions 定價

Cloud Functions for Firebase 需要使用部分付費 Google 服務。使用 Firebase CLI 11.2.0 以上版本的新函式部署作業會依賴 Cloud BuildArtifact Registry。部署至舊版的應用程式會以相同方式使用 Cloud Build,但會使用 Container RegistryCloud Storage 進行儲存,而非 Artifact Registry。除了現行定價之外,系統也會針對這些服務的用量收費。

Firebase CLI 11.2.0 以上版本的儲存空間

Artifact Registry 會提供執行函式的容器。Artifact Registry 提供前 500 MB 的免費空間,因此您第一次部署函式可能不會產生任何費用。超過這個門檻後,每 GB 額外儲存空間的月費為 $0.10 美元。

Firebase CLI 11.1.x 以下版本的儲存空間

對於部署至舊版的函式,Container Registry 會提供函式執行的容器。系統會針對部署函式所需的每個容器向您收費。您可能會發現系統會針對每個儲存的容器收取少許費用,例如 1 GB 儲存空間的月費為 $0.026 美元

如要進一步瞭解帳單可能會發生的變化,請參閱以下內容

可以,在 Blaze 方案中,Cloud Functions 針對叫用、運算時間和網際網路流量提供免付費方案。每月享有免費 2,000,000 次叫用、400,000 GB/秒、200,000 CPU 使用秒數和 5 GB 的網際網路輸出流量。您只需要為超出這些門檻的用量付費。

超過前 500 MB 的免付費儲存空間後,每個部署作業都會產生小額費用,用於儲存函式容器的儲存空間。如果開發程序需要部署函式進行測試,您可以在開發期間使用 Firebase Local Emulator Suite,進一步降低成本。

請參閱 Firebase 定價方案Cloud Functions 定價示例情境。

否。我們沒有計劃變更配額,但會移除建構時間上限。如果您達到 120 分鐘的每日建構配額,系統不會傳送錯誤或警告,而是會依照 Blaze 定價方案的條款向您收費。請參閱「配額與限制」。

可以,您可以在 Google Cloud 控制台中建立 Cloud Billing 帳戶,以便獲得 $300 美元的抵免額,然後將該 Cloud Billing 帳戶連結至 Firebase 專案。

如要進一步瞭解Google Cloud 抵免額,請參閱這篇文章

請注意,如果您這樣做,就必須在 Firebase 控制台中設定 Blaze 定價方案,才能讓專案在 $300 美元的抵免額用盡後繼續運作。

很抱歉,您可以使用 Firebase 模擬器進行開發,而無須擁有 Cloud Billing 帳戶。或者,您也可以申請 Google Cloud 免費試用。如果您仍無法因這項異動付款,請與 Firebase 支援團隊聯絡。

您可以在 Google Cloud 主控台設定預算快訊,協助控管費用。此外,您也可以設定限制,針對每個函式建立可產生帳單的執行個體數量。如要瞭解一般情境的費用,請參閱 Cloud Functions 定價示例。

Firebase 控制台中查看「用量與帳單資訊主頁。

可以,由於擴充功能會使用 Cloud Functions,因此擴充功能的費用會與其他函式相同。

如要使用擴充功能,您必須升級至 Blaze 定價方案。除了使用 Firebase 服務而產生的所有費用之外,你也必須為每個安裝的擴充功能耗用的 Firebase 資源支付小額費用 (通常每月約 $0.01 美元),即便擴充功能處於閒置狀態也一樣。



Cloud Messaging

Firebase Cloud Messaging 透過用戶端 SDK 和 HTTP 和 XMPP 伺服器通訊協定,提供完整的訊息傳遞功能。如果部署作業需要更複雜的訊息傳送功能,FCM 就是最佳選擇。

通知編寫器是建構於 Firebase Cloud Messaging 之上的輕量型無伺服器訊息傳送解決方案。通知編輯器提供易於使用者使用的圖形控制台,並減少程式碼需求,讓使用者輕鬆傳送訊息,以便重新吸引及留住使用者、促進應用程式成長,以及支援行銷廣告活動。

功能 通知編輯器 Cloud Messaging
目標 單一裝置
訂閱主題的用戶端 (例如天氣)
預先定義的使用者區隔中的客戶 (應用程式、版本、語言)
指定分析目標對象中的客戶
裝置群組中的用戶端
從用戶端到伺服器的上游
訊息類型      通知大小上限為 2kb
資料訊息大小上限為 4 KB
廣告放送 立即
未來的用戶端裝置當地時間
數據分析 內建的通知分析集合與漏斗分析

否。Firebase Cloud Messaging 已在 2017 年改用以 HTTP/2 為基礎的 APN 通訊協定。如果您使用 FCM 向 iOS 裝置傳送通知,則無須採取任何行動。

您可以使用 Firebase Cloud Messaging 做為獨立元件,方法與使用 GCM 時相同,不必使用其他 Firebase 服務。

FCM 是 Firebase 品牌下的 GCM 新版本。它繼承了 GCM 的核心基礎架構,並提供新的 SDK,讓 Cloud Messaging 開發作業更輕鬆。

升級至 FCM SDK 的好處包括:

  • 簡化用戶端開發作業。您不必再自行編寫註冊或訂閱重試邏輯。
  • 立即可用的通知解決方案。您可以使用通知製作工具,這是一項無伺服器通知解決方案,內含可讓任何人根據 Google Analytics 的洞察資料,向特定目標對象傳送通知的網頁控制台。

如要從 GCM SDK 升級至 FCM SDK,請參閱遷移 AndroidiOS 應用程式的指南。

如果裝置似乎未成功收到訊息,請先檢查以下兩個可能的原因:

通知訊息的前景訊息處理程序。當應用程式在裝置上處於前景時,用戶端應用程式需要新增訊息處理邏輯,以便處理通知訊息。請參閱 iOS Android 的詳細說明。

網路防火牆限制。如果貴機構的防火牆限制了來自或傳往網際網路的流量,您必須設定防火牆,允許與 FCM 連線,讓 Firebase Cloud Messaging 用戶端應用程式能夠接收訊息。需要開啟的通訊埠如下:

  • 5228
  • 5229
  • 5230

FCM 通常會使用 5228,但有時也會使用 5229 和 5230。FCM 不會提供特定 IP,因此您應允許防火牆接受對外連線至 Google ASN 15169 所列 IP 區塊中的所有 IP 位址。

應用程式處於背景時,系統工作列會顯示 通知訊息,且不會呼叫 onMessageReceived。如果通知訊息含有資料酬載,系統會在系統匣中顯示通知訊息,並從使用者輕觸通知時啟動的意圖中擷取通知訊息所含的資料。

詳情請參閱「接收及處理訊息」。

通知編寫器是建構於 Firebase Cloud Messaging 之上的輕量型無伺服器訊息傳送解決方案。通知編輯器提供易於使用者使用的圖形控制台,並減少程式碼需求,讓使用者輕鬆傳送訊息,以便重新吸引及留住使用者、促進應用程式成長,以及支援行銷廣告活動。

Firebase Cloud Messaging 透過用戶端 SDK 和 HTTP 和 XMPP 伺服器通訊協定,提供完整的訊息傳遞功能。如果部署作業需要更複雜的訊息傳送功能,FCM 就是最佳選擇。

以下比較 Firebase Cloud Messaging 和 Notifications 編寫器提供的訊息傳送功能:

功能 通知編輯器 Cloud Messaging
目標 單一裝置
訂閱主題的用戶端 (例如天氣)
預先定義的使用者區隔中的客戶 (應用程式、版本、語言)
指定分析目標對象中的客戶
裝置群組中的用戶端
從用戶端到伺服器的上游
訊息類型      通知大小上限為 2kb
資料訊息大小上限為 4 KB
廣告放送 立即
未來的用戶端裝置當地時間
數據分析 內建的通知分析集合與漏斗分析

通知製作工具是即用型解決方案,可讓任何人根據 Google Analytics 的洞察資料,向特定目標對象傳送通知。此外,通知製作工具會為每則訊息提供漏斗分析,方便您評估通知的成效。

如果您是現有的 GCM 開發人員,則必須從 GCM SDK 升級至 FCM SDK,才能使用通知編寫工具。請參閱遷移 AndroidiOS 應用程式的指南。

FCM 功能將於 2023 年 6 月淘汰

下列 API/SDK 會受到淘汰影響:

伺服器 API

API 名稱 API 端點 對使用者的影響 敬請採取行動
舊版 HTTP 通訊協定 https://fcm.googleapis.com/fcm/send 2024 年 6 月 21 日後,對此端點提出的要求將會失敗。 遷移至 HTTP v1 API
舊版 XMPP 通訊協定 fcm-xmpp.googleapis.com:5235 2024 年 6 月 21 日後,對該端點提出的要求將會失敗。 遷移至 HTTP v1 API
執行個體 ID 伺服器 API https://iid.googleapis.com/v1/web/iid 2024 年 6 月 21 日後,對該端點提出的要求將會失敗。 使用 Web JS SDK 建立 FCM 網路註冊。
https://iid.googleapis.com/iid/* 端點會繼續運作,但在 2024 年 6 月 21 日之後,將無法使用靜態伺服器金鑰進行驗證。 使用服務帳戶產生的 OAuth 2.0 存取權杖
裝置群組管理 API https://fcm.googleapis.com/fcm/notification 端點會繼續運作,但在 2024 年 6 月 21 日之後,就不會支援使用靜態伺服器金鑰進行驗證。 使用服務帳戶產生的 OAuth 2.0 存取權杖
透過 XMPP 傳送上游訊息 fcm-xmpp.googleapis.com:5235 2024 年 6 月 21 日之後,應用程式中的 FirebaseMessaging.send API 呼叫不會觸發上游訊息傳送至應用程式伺服器。 在伺服器邏輯中實作這項功能。舉例來說,部分開發人員會實作自己的 HTTP/gRPC 端點,並直接呼叫端點,將訊息從用戶端傳送至應用程式伺服器。如需使用 gRPC 實作上游訊息傳遞的範例,請參閱這篇gRPC 快速入門文章。
Batch Send API https://fcm.googleapis.com/batch 2024 年 6 月 21 日後,對該端點提出的要求將會失敗。 遷移至標準 HTTP v1 API 傳送方法,該方法支援用於多工處理的 HTTP/2。

Firebase Admin SDK API

API 名稱 API 語言 對使用者的影響 敬請採取行動
sendToDevice() Node.js 這個 API 會在 2024 年 6 月 21 日後停止運作,因為它會呼叫舊版 HTTP 傳送 API。 請使用 send() 方法。
sendToDeviceGroup() Node.js 這個 API 會在 2024 年 6 月 21 日後停止運作,因為它會呼叫舊版 HTTP 傳送 API。 請使用 send() 方法。
sendToTopic() Node.js 這個 API 會在 2024 年 6 月 21 日後停止運作,因為它會呼叫舊版 HTTP 傳送 API。 請使用 send() 方法。
sendToCondition() Node.js 這個 API 會在 2024 年 6 月 21 日後停止運作,因為它會呼叫舊版 HTTP 傳送 API。 請使用 send() 方法。
sendAll()/sendAllAsync()/send_all()/sendMulticast()/SendMulticastAsync()/send_multicast() Node.js、Java、Python、Go、C# 這些 API 會在 2024 年 6 月 21 日後停止運作,因為這些 API 會呼叫批次傳送 API。 升級至最新版 Firebase Admin SDK,並改用新 API:sendEach()/ sendEachAsync()/send_each()/sendEachForMulticast()/sendEachForMulticastAsync()/ send_each_for_multicast()

請注意,新 API 不再呼叫已淘汰的批次傳送 API,因此可能會比舊 API 建立更多並行的 HTTP 連線。

用戶端 SDK

SDK 版本 對使用者的影響 敬請採取行動
GCM SDK (已於 2018 年淘汰) 2024 年 6 月 21 日之後,使用 GCM SDK 的應用程式將無法註冊權杖,也無法接收來自 FCM 的訊息。 如果您尚未將 Android SDK 升級至最新的 Firebase SDK,請進行升級。
JS SDK 版本 <7.0.0 (2019 年 7.0.0 版的破壞性變更) 使用舊版 JS SDK 的網頁應用程式,在 2024 年 6 月 21 日後將無法註冊權杖。 將 Firebase Web SDK 升級至最新版本。

否。您有 12 個月的時間 (2023 年 6 月 20 日 - 2024 年 6 月 21 日) 可以從舊版 API 遷移至新版 API,且不會導致服務降級。強烈建議您盡早規劃遷移作業,以免受到 2024 年 6 月停用 API 的影響。

2024 年 6 月後,您在使用上述 API/SDK 時,可能會發現錯誤增加或缺少功能 (詳情請參閱下一個常見問題)。

FCM 將從 2024 年 7 月 22 日開始逐步停用已淘汰的 API。在這個日期過後,已淘汰的服務將會經歷「閃爍」程序,要求數量會越來越多,並傳回錯誤回應。在逐步降載期間,您可以預期下列行為和錯誤回應會隨著時間增加頻率:

類別 預期程序
舊版 HTTP 通訊協定 要求遭到拒絕,並傳回 HTTP 代碼 301。
舊版 XMPP 通訊協定 要求遭到拒絕,並傳回錯誤代碼 302。
FCM 上游 FCM 後端會悄悄捨棄訊息。
Batch Send API 要求遭到拒絕,並傳回錯誤代碼 UNIMPLEMENTED 和錯誤訊息「The API is deprecated.」
GCM SDK - 註冊權杖 要求遭到拒絕,並傳回 HTTP 代碼 301。
GCM SDK - 傳送訊息 要求遭到拒絕,並傳回錯誤代碼 400 和錯誤訊息「V3 權杖已淘汰」。
JS SDK 版本 < 7.0.0 要求遭到拒絕,並傳回 HTTP 代碼 501。
使用伺服器金鑰存取 Instance ID 和裝置群組管理 API 要求遭到拒絕,並傳回 HTTP 401 代碼。

OAuth 2.0 權杖是從服務帳戶衍生的短期權杖。這是 Google 的標準驗證模式,比靜態伺服器金鑰更安全。

如要瞭解如何使用 Google 驗證程式庫取得權杖,請參閱「使用憑證鑄造存取權杖」一文。

請注意,如果您使用 OAuth 2.0 權杖向不同端點提出要求,要求標頭會有所不同。

  • HTTP v1 APIAuthorization: Bearer $oauth_token
  • Instance ID 伺服器 API裝置群組管理 APIAuthorization: Bearer $oauth_token
    access_token_auth: true

建議您逐步增加流量至新 API。如果您預計會定期傳送超過 600,000 則訊息/分鐘,請 與 Firebase 支援團隊聯絡,瞭解如何增加配額,或取得如何分散流量的建議。

主題:使用 v1 API 時,您不需要在主題目標中加入「/topics/」前置字串。

裝置群組:您可以在 HTTP v1 API 中使用群組權杖做為權杖目標。不過,HTTP v1 API 不會在回應中傳回成功/失敗次數。建議您使用 FCM 主題,或自行管理裝置群組。

否。這項功能在舊版 HTTP API 中稱為「多播」,但 HTTP v1 API 不支援這項功能,因為該 API 的設計更適合擴充性。

如果用途需要端對端延遲,或是總分支大小很小 (少於 100 萬),Google 建議您使用 HTTP v1 API 傳送多個獨立要求。在 99.9% 的多播要求 (傳送 < 100 個符記) 中,HTTP/2 上的 HTTP v1 API 效能相近。對於異常用途 (傳送 1000 個符記),其吞吐率最高可達三分之一,因此需要額外的並行作業,才能針對這種非典型用途進行最佳化。相較於舊版多播,使用者在使用 HTTP v1 API 時,可享有更可靠且可用性更高的體驗。

如果是傳輸量和傳出頻寬為優先考量的用途,或是總分支大小較大 (超過 100 萬),Google 建議使用主題訊息。雖然主題訊息需要一次性動作才能讓收件者訂閱主題,但它最多可提供 每個專案 10,000 個 QPS 的發布率,且不設主題大小上限。

平台 Firebase Admin SDK 版本
Node.js >=11.7.0
Python >=6.2.0
Java >=9.2.0
Go >=4.12.0
.NET >=2.4.0

FCM 批次傳送 API 使用與 HTTP v1 API 相同的訊息格式和驗證機制。但會使用不同的端點。如要提高效率,建議您使用 HTTP/2,透過相同的 HTTP 連線向 HTTP v1 API 傳送多個要求。

如需協助,請與 Google Cloud 支援團隊聯絡。

否。自 2024 年 5 月 20 日起,新專案將無法再啟用舊版 API。

確認已完全遷移至 HTTP v1 API 後,您可以停用舊版 Cloud Messaging API (如果 API 已停用,頁面可能無法載入)。

FCM 配額和限制

很抱歉,我們無法支援此用途。請務必將流量分散在 5 分鐘內。

很抱歉,我們無法基於這個原因核准配額增加申請。請務必將流量分散在 5 分鐘內。

建議您在活動開始前至少 5 分鐘開始傳送通知。

這取決於您使用 FCM 的方式。無論如何,我們會在幾個工作天內回覆。在某些情況下,您可能會因使用 FCM 和各種情況而來回聯絡,這可能會延長處理程序。如果符合所有規定,大多數要求會在 2 週內處理完畢。

請參閱 Google Cloud 指南,瞭解如何繪製及監控配額指標

我們瞭解配額上限可能會造成困擾,但配額對於維持服務可靠性至關重要,因此我們無法核准豁免。

您可以申請額外配額,支援長達 1 個月的事件。請至少提前 1 個月提出要求,並提供活動開始和結束時間的詳細資料,FCM 會盡力滿足要求 (但無法保證一定會增加)。這些配額增量會在活動結束日期後還原。

雖然 Google 不會輕易採取這類行動,但為了保護系統的完整性,我們可能會視需要變更配額。在可行情況下,Google 會提前通知您這類異動。



Cloud Storage for Firebase

請參閱 Cloud Storage 說明文件,進一步瞭解預設 Cloud Storage 桶的變更

Cloud Storage for Firebase 會在 App Engine 免費等級中建立預設值區。這樣一來,您就能快速開始使用 Firebase 和 Cloud Storage for Firebase,無須插入信用卡或啟用 Cloud Billing 帳戶。您也可以輕鬆在 Firebase 和 Google Cloud 專案之間共用資料。

不過,有兩種已知情況無法建立這個值區,因此您無法使用 Cloud Storage for Firebase

  • Google Cloud 匯入的專案,其中包含 App Engine 主/從 Datastore 應用程式。
  • Google Cloud 匯入的專案,其中包含網域前置字串專案。例如:domain.com:project-1234

目前沒有解決這些問題的因應措施,建議您在 Firebase 控制台中建立新專案,並在該專案中啟用 Cloud Storage for Firebase

您可能會收到 412 錯誤代碼,原因可能是您的專案未啟用 Cloud Storage for Firebase API,或是必要的服務帳戶缺少必要權限。

請參閱相關常見問題

對於免付費 (Spark) 方案專案,Firebase 會透過 Cloud Storage for FirebaseFirebase Hosting 阻擋上傳和代管 Windows、Android 和 Apple 的特定可執行檔案類型。這項政策旨在防止平台上發生濫用行為。

2023 年 9 月 28 日當天或之後建立的所有 Spark 專案,都無法提供、託管及上傳禁止使用的檔案。對於在該日期前上傳檔案的現有 Spark 專案,仍可上傳及代管這類檔案。

這項限制適用於 Spark 方案專案。使用即付即用 (Blaze) 方案的專案不會受到影響。

以下檔案類型無法在 Firebase HostingCloud Storage for Firebase 上代管:

  • 副檔名為 .exe.dll.bat 的 Windows 檔案
  • 副檔名為 .apk 的 Android 檔案
  • 副檔名為 .ipa 的 Apple 平台檔案

我需要採取什麼行動?

如果您仍想在 2023 年 9 月 28 日之後託管這些檔案類型,請按照下列步驟操作:

  • 代管服務:請先升級至 Blaze 方案,才能透過 firebase deploy 指令將這些檔案類型部署至 Firebase Hosting
  • 儲存空間:升級至 Blaze 方案,即可使用 GCS CLI、Firebase 主控台或 Google Cloud 主控台,將這些檔案類型上傳至您選擇的值區。

使用 Firebase 工具管理 Firebase HostingCloud Storage 資源。

  • 如要管理 Firebase Hosting 中的資源,請按照這份指南的說明,使用 Firebase 控制台刪除版本。
  • 如要管理 Cloud Storage 中的資源,請前往專案中的儲存空間產品頁面
    1. 在「檔案」分頁中,找出資料夾階層中要刪除的禁止刪除檔案,然後勾選面板左側檔案名稱旁的核取方塊。
    2. 按一下「Delete」,確認檔案已刪除。

如要進一步瞭解如何 使用 Firebase 工具管理代管資源,以及如何使用用戶端程式庫管理 Firebase 專用 Cloud Storage 儲存空間的資料夾,請參閱說明文件。

先前,系統無法正確計算對 Cloud Storage for Firebase API 的下載和上傳要求。我們已採取措施解決這項問題,自 2023 年 9 月 15 日起生效。

對於 Blaze 使用者,上傳和下載作業將開始計入每月帳單。對於 Spark 使用者,系統會開始將他們計入每月免費限制。

建議您監控用量頁面,查看是否有任何可能影響限制的用量增加情形。

Firebase 會使用服務帳戶運作及管理服務,而無須分享使用者憑證。建立 Firebase 專案時,您可能會發現專案中已提供多個服務帳戶。

Cloud Storage for Firebase 使用的服務帳戶會限定在您的專案中,名稱為
service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com

如果您在 2022 年 9 月 19 日前使用 Cloud Storage for Firebase,可能會在先前已連結的 Cloud Storage 桶中看到名為 firebase-storage@system.gserviceaccount.com 的額外服務帳戶。自 2022 年 9 月 19 日起,我們將不再支援這個服務帳戶。

您可以在 Firebase 控制台的「Service accounts」(服務帳戶) 分頁中,查看與專案相關聯的所有服務帳戶。

新增服務帳戶

如果您先前已移除服務帳戶,或是專案中沒有服務帳戶,可以執行下列任一操作來新增帳戶。

  • (建議) 自動化:使用 AddFirebase REST 端點,將儲存體重新匯入 Firebase。您只需要呼叫這個端點一次,而非為每個已連結的值區呼叫一次。
  • 手動:請按照「建立及管理服務帳戶」一文中的步驟操作。 按照該指南的說明,新增具有 IAM 角色 Cloud Storage for Firebase Service Agent 的服務帳戶,並將服務帳戶名稱設為
    service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com
移除新的服務帳戶

我們強烈建議您不要移除服務帳戶,因為這可能會阻止應用程式存取您的 Cloud Storage 儲存桶。如要從專案中移除服務帳戶,請按照「停用服務帳戶」一文中的操作說明進行。

Cloud Storage for Firebase 定價

請參閱 Cloud Storage 說明文件,進一步瞭解 Cloud Storage 的定價方案規定異動

請前往 Firebase 定價頁面,並使用 Blaze 方案計算機。計算工具會列出 Cloud Storage for Firebase 的所有用途類型。

使用滑桿輸入儲存空間值區的預期用量。計算機會估算每月帳單。

如果您在 Spark 方案的專案中超過 Cloud Storage 的限制,結果會視您超出哪種限制而定:

  • 如果您超過儲存 GB 數量上限,就無法再儲存該專案中的任何資料,除非您移除部分儲存的資料,或升級至提供更多儲存空間 (或無限儲存空間) 的方案。
  • 如果您超過下載 GB 數量上限,應用程式將無法下載更多資料,直到隔天 (美國太平洋時間午夜開始) 才可下載,除非您升級至限制較少或沒有限制的方案。
  • 如果您超過上傳或下載作業上限,除非您升級至限制較少或沒有限制的上限方案,否則應用程式將無法上傳或下載更多資料,直到隔天 (美國太平洋時間午夜開始) 才可。



Crashlytics

如需實用提示和更多常見問題的解答,請前往Crashlytics疑難排解與常見問題頁面



請參閱Dynamic Links常見問題

getInvitation API 會清除已儲存的動態連結,以免重複存取。請務必在每個深層連結活動中,將 autoLaunchDeepLink 參數設為 false 來呼叫此 API,以便在活動在主要活動之外觸發時清除該參數。



Hosting

對於免付費 (Spark) 方案專案,Firebase 會透過 Cloud Storage for FirebaseFirebase Hosting 阻擋上傳和代管 Windows、Android 和 Apple 的特定可執行檔案類型。這項政策旨在防止平台上發生濫用行為。

2023 年 9 月 28 日當天或之後建立的所有 Spark 專案,都無法提供、託管及上傳禁止使用的檔案。對於在該日期前上傳檔案的現有 Spark 專案,仍可上傳及代管這類檔案。

這項限制適用於 Spark 方案專案。使用即付即用 (Blaze) 方案的專案不會受到影響。

以下檔案類型無法在 Firebase HostingCloud Storage for Firebase 上代管:

  • 副檔名為 .exe.dll.bat 的 Windows 檔案
  • 副檔名為 .apk 的 Android 檔案
  • 副檔名為 .ipa 的 Apple 平台檔案

我需要採取什麼行動?

如果您仍想在 2023 年 9 月 28 日之後託管這些檔案類型,請按照下列步驟操作:

  • 代管服務:請先升級至 Blaze 方案,才能透過 firebase deploy 指令將這些檔案類型部署至 Firebase Hosting
  • 儲存空間:升級至 Blaze 方案,即可使用 GCS CLI、Firebase 主控台或 Google Cloud 主控台,將這些檔案類型上傳至您選擇的值區。

使用 Firebase 工具管理 Firebase HostingCloud Storage 資源。

  • 如要管理 Firebase Hosting 中的資源,請按照這份指南的說明,使用 Firebase 控制台刪除版本。
  • 如要管理 Cloud Storage 中的資源,請前往專案中的儲存空間產品頁面
    1. 在「檔案」分頁中,找出資料夾階層中要刪除的禁止刪除檔案,然後勾選面板左側檔案名稱旁的核取方塊。
    2. 按一下「Delete」,確認檔案已刪除。

如要進一步瞭解如何 使用 Firebase 工具管理代管資源,以及如何使用用戶端程式庫管理 Firebase 專用 Cloud Storage 儲存空間的資料夾,請參閱說明文件。

Firebase 會自動新增包含 Hosting 網站中繼資料的額外檔案,這些檔案會納入版本的總檔案數量。

Hosting 個別檔案的大小上限為 2 GB。

建議您使用 Cloud Storage 儲存較大的檔案,因為該服務可為個別物件提供 TB 等級的大小限制。

Firebase Hosting 多網站功能最多支援每個專案 36 個網站。



Performance Monitoring

如需實用提示和更多常見問題的解答,請前往Performance Monitoring疑難排解與常見問題頁面

每個應用程式最多可建立 400 個自訂網址模式,每個應用程式網域最多可建立 100 個自訂網址模式。

如要查看即時效能資料,請確認應用程式使用的 Performance Monitoring SDK 版本與即時資料處理相容。

  • iOS:7.3.0 以上版本
  • tvOS:8.9.0 以上版本
  • Android:19.0.10 以上版本 (或 Firebase Android BoM 26.1.0 以上版本)
  • 網頁:7.14.0 以上版本

請注意,我們一律建議您使用最新版 SDK,但上述任何版本都能讓 Performance Monitoring 以近乎即時的方式處理資料。



Realtime Database

一個同時連線的裝置,等同於一個連結至資料庫的行動裝置、瀏覽器分頁或伺服器應用程式。Firebase 會對應用程式資料庫的同時連線數量設下硬性限制。這些限制旨在保護 Firebase 和使用者免於遭受濫用行為的侵擾。

Spark 方案的上限為 100,無法提高。Flame 和 Blaze 方案的每個資料庫同時連線數上限為 200,000 個。

這項限制與應用程式的使用者總數不同,因為使用者並不會同時連線。如果您需要的同時連線數量超過 200,000 個,請參閱「 使用多個資料庫進行擴充」一文。

每個 Realtime Database 例項都有每秒寫入作業數量的限制。針對小型寫入作業,此限制約為每秒 1000 次寫入作業。如果您即將達到這個上限, 使用多路更新功能進行批次作業有助於提高輸送量。

此外,每個資料庫執行個體都有同時進行的資料庫連線數上限。我們的預設限制對大多數應用程式來說都足夠寬鬆。如果您要建構需要額外規模的應用程式,可能需要在多個資料庫執行個體中分割應用程式,以便增加規模。您也可以考慮使用 Cloud Firestore 做為其他資料庫。

如果您在 Firebase 控制台收到電子郵件快訊或通知,指出您已超過 Realtime Database 用量限制,可以根據超出用量限制的情況採取行動。如要查看 Realtime Database 用量,請前往 Firebase 主控台的 Realtime Database「用量」資訊主頁。

如果您已超過下載上限,可以升級 Firebase 定價方案,或是等到下一個帳單週期開始時,再等待下載上限重設。如要減少下載次數,請嘗試下列步驟:

  • 新增查詢,限制監聽作業傳回的資料。
  • 檢查未編入索引的查詢。
  • 請使用只會下載資料更新的事件監聽器,例如 on() 而非 once()
  • 使用安全規則封鎖未經授權的下載作業。

如果儲存空間已用盡,請升級價格方案,以免服務中斷。如要減少資料庫中的資料量,請嘗試下列步驟:

  • 執行定期清理工作。
  • 減少資料庫中的重複資料。

請注意,刪除資料後,可能需要一段時間才會反映在儲存空間配額中。

如果同時存在的資料庫連線數量超過上限,請升級方案,避免服務中斷。如要管理資料庫的同時連線,如果使用者不需要即時連線,請嘗試透過 REST API 連線。

為提供可預測的價格,Spark 方案提供的資源有上限。也就是說,如果您在某個月超過任何方案限制,系統就會關閉應用程式,避免您繼續使用資源並產生額外費用。

如果應用程式在 Spark 方案中達到並行處理限制,系統會拒絕所有後續連線,直到關閉部分現有連線為止。已連線的使用者仍可繼續使用該應用程式。

自動備份是專為採用 Blaze 價格方案的客戶提供的進階功能,可每天備份您的 Firebase Realtime Database 資料,並上傳至 Google Cloud Storage

我們不提供每小時備份服務。

在頻寬計算中,我們通常會加入 SSL 加密負荷 (根據 OSI 模型的第 5 層)。不過,在 2016 年 9 月,我們引入了一個錯誤,導致頻寬回報忽略加密額外負擔。這可能會導致帳戶在幾個月內的回報頻寬和帳單費用不合理地偏低。

我們已在 2017 年 3 月底發布錯誤修正程式,讓頻寬報表和帳單恢復正常。



Remote Config

除非您使用 fetchAndActivate() 擷取值,否則值會儲存在本機,但不會啟用。如要啟用擷取的值,讓這些值生效,請呼叫 activate。這項設計可讓您控制應用程式的行為和外觀何時變更,因為您可以選擇呼叫 activate 的時機。呼叫 activate 後,應用程式原始碼會決定何時使用更新的參數值。

舉例來說,您可以擷取值,然後在使用者下次啟動應用程式時啟用這些值,這樣就不必在應用程式等待服務擷取值時延遲啟動。應用程式使用更新後的參數值時,就會變更應用程式的行為和外觀。

如要進一步瞭解遠端設定 API 和使用模式,請參閱「遠端設定 API 總覽」。

在應用程式開發期間,您可能會經常擷取及啟用設定 (每小時多次),以便在開發及測試應用程式時快速迭代。為了在最多 10 位開發人員的專案中快速迭代,您可以在應用程式中暫時設定 FirebaseRemoteConfigSettings 物件,並設定較低的擷取間隔 (setMinimumFetchIntervalInSeconds)。

裝置通常會在 1 秒內收到擷取的值,而且通常會在毫秒內收到擷取的值。Remote Config 服務會在幾毫秒內處理擷取要求,但完成擷取要求所需的時間取決於裝置的網路速度,以及裝置使用的網路連線延遲時間。

如果您希望盡快在應用程式中套用擷取的值,但又不想造成使用者體驗不佳,建議您在應用程式每次進行全螢幕重新整理時,新增對 fetchAndActivate 的呼叫。



Test Lab

請造訪 Test Lab 疑難排解頁面,瞭解實用提示和常見問題的解答。



Firebase 使用者區隔儲存空間

Firebase 使用者區隔儲存空間會儲存 Firebase 安裝 ID 和相關屬性、區隔,以及您建立的目標對象清單,以便將指定資訊提供給使用這些資訊的其他 Firebase 服務,例如 CrashlyticsFCMRemote Config 個人化功能等等。