是否遇到其他挑戰,或是您的問題與下方無關?請回報錯誤或提出功能建議,並加入 Stack Overflow 討論。
Firebase 專案和 Firebase 應用程式
什麼是 Firebase 專案?
Firebase 專案是 Firebase 的頂層實體。在專案中,您可以註冊 Apple、Android 或網頁應用程式。透過 Firebase 註冊應用程式後,您就能將特定產品的 Firebase SDK 新增至應用程式,例如 Analytics (分析)、Cloud Firestore、Crashlytics 或遠端設定。
建議您在單一 Firebase 專案中註冊 Apple、Android 和網頁應用程式變化版本。您可以使用多項 Firebase 專案來支援多個環境,例如開發、測試和實際工作環境。
歡迎參考以下資源,進一步瞭解 Firebase 專案:
- 瞭解 Firebase 專案:提供 Firebase 專案的幾個重要概念的簡介,包括這些概念與 Google Cloud 的關係,以及專案、應用程式和資源的基本階層。
- 設定 Firebase 專案的一般最佳做法:提供設定 Firebase 專案及向專案註冊應用程式的一般通用最佳做法,可確保您擁有使用不同環境的明確開發工作流程。
請注意,對於所有 Firebase 專案,Firebase 會自動在 Google Cloud 控制台的「標籤」頁面為您的專案加上 firebase:enabled
標籤。如要進一步瞭解這個標籤,請參閱常見問題。
什麼是 Google Cloud 機構?
Google Cloud 機構是 Google Cloud 專案 (包括 Firebase 專案) 的容器。這種階層方式可以提升 Google Cloud 與 Firebase 專案的組織、存取權管理和稽核成效。詳情請參閱「建立及管理機構」一文。
如何將 Firebase 加入現有的 Google Cloud 專案?
您可能有透過 Google Cloud 控制台或 Google API 控制台管理的現有 Google Cloud 專案。
您可以透過下列任一方式將 Firebase 新增至這些現有專案:
- 使用 Firebase 控制台:
在 Firebase 控制台的到達網頁中,按一下「新增專案」,然後從「專案名稱」選單中選取現有專案。 - 使用程式輔助選項:
- 呼叫 Firebase Management REST API 端點
addFirebase
。 - 執行 Firebase CLI 指令
firebase projects:addfirebase
。 - 使用 Terraform。
- 呼叫 Firebase Management REST API 端點
我的 Google Cloud 專案為何含有 firebase:enabled
標籤?
在 Google Cloud 控制台中,專案的「標籤」頁面可能會顯示 firebase:enabled
標籤 (特別是 firebase
的 Key
和 enabled
的 Value
)。
Firebase 已自動新增這個標籤,因為您的專案是 Firebase 專案,也代表您的專案已啟用 Firebase 專屬設定和服務。進一步瞭解 Firebase 專案與 Google Cloud 之間的關係。
強烈建議您不要修改或刪除這個標籤。Firebase 和 Google Cloud 會使用這個標籤列出你的 Firebase 專案 (例如使用 REST API projects.list
端點或 Firebase 控制台的選單中)。
請注意,手動將這個標籤新增至專案標籤清單,並「無法」為您的 Google Cloud 專案啟用 Firebase 專屬設定與服務。為此,您必須透過 Firebase 主控台新增 Firebase。如為進階用途,請透過 Firebase Management REST API 或 Firebase CLI 新增 Firebase。
為什麼我的 Firebase 專案未顯示在 Firebase 專案清單中?
如果在下列位置沒有看到 Firebase 專案,可以參考這份常見問題:
- 此清單會列出您在 Firebase 控制台查看的專案
- 透過呼叫 REST API
projects.list
端點的回應 - 執行 Firebase CLI 指令
firebase projects:list
時的回應
請試試看下列疑難排解步驟:
- 首先,請試著直接前往專案的網址存取專案。請使用下列格式:
https://console.firebase.google.com/project/PROJECT-ID/overview
- 如果您無法存取專案或收到權限錯誤,請檢查下列事項:
- 請務必使用具備專案存取權的 Google 帳戶登入 Firebase。您可以透過控制台右上角的帳戶顯示圖片,登入及登出 Firebase 控制台。
- 確認是否可以在 Google Cloud 控制台中查看專案。
- 確認您已在 Google Cloud 控制台的「標籤」頁面中,為專案加上
firebase:enabled
標籤。Firebase 和 Google Cloud 都會使用這個標籤列出你的 Firebase 專案。如果專案已啟用 Firebase Management API,但未顯示這個標籤,請手動新增標籤 (具體來說,是firebase
的Key
,Value
為enabled
)。 - 確認您獲派的其中一種基本 IAM 角色 (擁有者、編輯者、檢視者),或是在其中具備 Firebase 相關權限的角色,例如 Firebase 預先定義的角色。您可以在 Google Cloud 控制台的「IAM」頁面中查看角色。
- 如果您的專案屬於 Google Cloud 機構,您可能需要取得額外權限才能查看 Firebase 控制台中列出的專案。請與 Google Cloud 機構的人員聯絡,請對方授予您查看專案的適當角色,例如「瀏覽器」角色。
如果上述步驟都無法使您在 Firebase 專案清單中看到您的專案,請與 Firebase 支援團隊聯絡。
每個帳戶可以建立幾項專案?
- Spark 定價方案:專案配額僅適用於少數專案 (通常約為 5 至 10 個專案)。
- Blaze 定價方案:只要 Cloud Billing 帳戶記錄良好,每個 Cloud Billing 帳戶的專案配額就會大幅增加。
對大多數開發人員來說,專案配額上限很少會令人擔心,但如有需要,您可以要求增加專案配額。
請注意,專案需要 30 天才能完全刪除,且會計入配額,直到完全刪除為止。
一個 Firebase 專案中可以包含多少個 Firebase 應用程式?
Firebase 專案是一種容器,可以存放 Apple、Android 和網路上的 Firebase 應用程式。Firebase 會將 Firebase 專案中的 Firebase 應用程式總數限制為 30 個。
這個數字過後,效能就會開始降低 (尤其是 Google Analytics (分析)),最終,隨著應用程式數量增加,部分產品功能會停止運作。此外,如果您使用 Google 登入做為驗證提供者,系統會為專案中的各個應用程式建立基礎 OAuth 2.0 用戶端 ID。一項專案內可建立的用戶端 ID 上限為 30 個。
您應從使用者的角度,確保單一 Firebase 專案中的所有 Firebase 應用程式都是同一個應用程式的平台變化版本。舉例來說,如果您開發了一個白標籤應用程式,每個加上標籤的應用程式都應有專屬的 Firebase 專案,但該標籤的 Apple 和 Android 版本可以屬於同一項專案。如需詳細指南,請參閱設定 Firebase 專案的一般最佳做法。
在極少數情況下,您的專案需要超過 30 個應用程式,您可以要求提高應用程式上限。您的專案必須採用 Blaze 定價方案,才能提出這項要求。請前往 Google Cloud 控制台提出要求,並進行評估。如要進一步瞭解配額管理,請參閱 Google Cloud 說明文件。
如果將專案標記為「實際執行」環境,會發生什麼情況?
在 Firebase 控制台中,您可以使用環境類型來標記 Firebase 專案,可以是「實際工作環境」或「未指定」(非實際工作環境) 環境。
將專案標記為環境類型並不會影響 Firebase 專案的運作方式或功能。不過,標記可協助您和團隊管理應用程式生命週期的各種 Firebase 專案。
如果您標記專案為正式環境,系統會在 Firebase 控制台的專案中新增一個亮色的「正式」標記,提醒你,任何變更都可能影響相關聯的正式版應用程式。我們日後可能會為標記為正式環境的 Firebase 專案新增更多功能和保護措施。
如要變更 Firebase 專案的環境類型,請前往settings「專案設定」 >「一般」,然後在「環境」下方的「您的專案」資訊卡中按一下 edit 即可變更環境類型。
哪裡可以找到 Firebase 應用程式的應用程式 ID?
前往 Firebase 控制台中的 settings 專案設定。向下捲動至「您的應用程式」資訊卡,然後按一下所需的 Firebase 應用程式,即可查看應用程式資訊,包括應用程式 ID。
以下是一些應用程式 ID 值範例:
-
Firebase iOS 應用程式:
1:1234567890:ios:321abc456def7890
-
Firebase Android 應用程式:
1:1234567890:android:321abc456def7890
-
Firebase 網頁應用程式:
1:1234567890:web:321abc456def7890
要將 Google Play / AdMob / Google Ads / BigQuery 連結至 Firebase 專案或應用程式有哪些先決條件?
- 如要連結 Google Play 帳戶,您需要符合以下條件:
- 下列任一 Firebase 角色皆可:擁有者或 Firebase 管理員
以及 - 下列任一 Google Play 存取層級:帳戶擁有者或管理員
- 下列任一 Firebase 角色皆可:擁有者或 Firebase 管理員
- 如要連結 AdMob 應用程式,您必須同時是 Firebase 專案擁有者和 AdMob 管理員。
- 如要連結 AdWords 帳戶,您必須同時是 Firebase 專案擁有者和 AdWords 管理員。
- 如要連結 BigQuery 專案,您必須是 Firebase 專案擁有者。
我應該在應用程式中提供哪些開放原始碼通知?
Apple 平台上的 Firebase Pod 含有 NOTICES 檔案,其中包含相關項目。Firebase Android SDK 包含可顯示授權資訊的輔助程式 Activity
。
Firebase 專案的權限和存取權
如何為專案成員指派角色 (例如「擁有者」角色)?
你必須是 Firebase 專案的擁有者,或是獲派具備 resourcemanager.projects.setIamPolicy
權限的角色,才能管理指派給各專案成員的角色。
您可在下列位置指派及管理角色:
- Firebase 控制台提供簡化的方式,方便您透過 settings 的「使用者和權限」分頁 >「專案設定」來指派角色給專案成員。在 Firebase 控制台中,您可以指派任何基本角色 (擁有者、編輯者、檢視者)、Firebase 管理員/檢視者角色,或任何 Firebase 預先定義的產品類別角色。
- Google Cloud 控制台提供一套豐富的工具,可讓您在「IAM」頁面中將角色指派給專案成員。在 Cloud 控制台中,您也可以建立及管理自訂角色,以及將專案存取權授予服務帳戶。
請注意,在 Google Cloud 控制台中,專案成員稱為「主體」。
如果專案的擁有者無法再執行「擁有者」的工作 (例如離職的使用者),且專案並非透過 Google Cloud 機構管理 (請見下個段落),您可以與 Firebase 支援團隊聯絡,要求指派臨時擁有者。
請注意,如果 Firebase 專案是隸屬於 Google Cloud 機構的一部分,該專案可能沒有擁有者。如果您找不到 Firebase 專案的擁有者,請與管理 Google Cloud 機構的人員聯絡,指派專案擁有者。
如何尋找 Firebase 專案的擁有者?
您可以在下列位置查看專案成員及其角色:
- 如果你在 Firebase 控制台中可以存取專案,可以在 Firebase 控制台的「使用者和權限」頁面中查看專案成員清單 (包括擁有者)。
- 如果您的 Firebase 控制台無法存取專案,請前往 Google Cloud 控制台檢查您是否可以存取專案。您可以在 Google Cloud 控制台的「IAM」頁面中查看專案成員 (包括擁有者) 清單。
如果專案的擁有者無法再執行擁有者的工作 (例如離職的使用者),且專案並非透過 Google Cloud 機構管理 (請參閱下一段),您可以與 Firebase 支援團隊聯絡,要求指派臨時擁有者。
請注意,如果 Firebase 專案是隸屬於 Google Cloud 機構的一部分,該專案可能沒有擁有者。而是可以執行擁有者可執行的多項工作。不過,如要執行多項「擁有者」專屬工作 (例如指派角色或管理 Google Analytics (分析) 資源),管理員可能需要指派「實際擁有者」角色給自己,才能執行這些工作。如果您找不到 Firebase 專案的擁有者,請與 Google Cloud 機構管理員聯絡,要求對方指派專案的擁有者。
我為何應在何時或何時將專案成員指派「擁有者」角色?
如要確保 Firebase 專案受到妥善管理,專案必須具備擁有者。專案的擁有者是能執行幾項重要管理動作 (例如指派角色及管理 Google Analytics (分析) 資源) 的人員,Firebase 支援團隊僅可執行專案擁有者提出的管理要求。
設定 Firebase 專案的擁有者之後,請務必隨時更新指派的項目。
請注意,如果 Firebase 專案隸屬於 Google Cloud 機構,則您的 Google Cloud 機構管理員可執行擁有者可執行的多項工作。但是,就多項擁有者專屬工作 (例如指派角色或管理 Google Analytics (分析) 資源) 而言,管理員可能需要指派實際擁有者角色給自己,才能執行這些工作。
我認為自己沒有 Firebase 專案,但我收到關於一項專案的電子郵件。如何存取這項專案?
您收到的電子郵件中應包含用來開啟 Firebase 專案的連結。 只要點選電子郵件中的連結,即可在 Firebase 控制台中開啟專案。
如果無法透過連結開啟專案,請確認您用來登入 Firebase 的 Google 帳戶是收到專案相關電子郵件的 Google 帳戶。您可以透過控制台右上角的帳戶顯示圖片登入及登出 Firebase 控制台。
請注意,如果您是 Google Cloud 機構的管理員,當機構內的 Firebase 專案有異動時,您會收到通知。但你的權限可能不足,無法開啟 Firebase 專案。在這些情況下,最簡單的解決方法就是指派實際擁有者角色給自己,以開啟專案並執行必要動作。進一步瞭解指派「擁有者」角色的原因和時機。
平台和架構
如需更多常見問題的實用提示和解答,請參閱平台專屬的疑難排解與常見問題頁面。
Firebase 控制台
哪些瀏覽器可用於存取 Firebase 控制台?
您可以透過 Chrome、Firefox、Safari 和 Edge 等近期熱門電腦版瀏覽器存取 Firebase 控制台。目前尚未完全支援行動瀏覽器。
我可以載入 Firebase 控制台,但為何找不到或無法存取 Firebase 專案?
如果您遇到下列其中一項問題,請參閱這份常見問題清單:
- Firebase 控制台傳回錯誤頁面,指出您的專案可能不存在,或是您沒有存取該專案的權限。
- 即使您在控制台的搜尋欄位中輸入專案 ID 或專案名稱,Firebase 控制台也不會顯示您的專案。
請試試看下列疑難排解步驟:
- 首先,請試著直接前往專案的網址存取專案。請使用下列格式:
https://console.firebase.google.com/project/PROJECT-ID/overview
- 如果仍然無法存取專案或收到權限錯誤,請檢查下列事項:
- 請務必使用具備專案存取權的 Google 帳戶登入 Firebase。您可以透過控制台右上角的帳戶顯示圖片,登入及登出 Firebase 控制台。
- 確認專案已啟用 Firebase Management API。
- 確認您獲派的其中一種基本 IAM 角色 (擁有者、編輯者、檢視者),或是在其中具備 Firebase 相關權限的角色,例如 Firebase 預先定義的角色。您可以在 Google Cloud 控制台的「IAM」頁面中查看角色。
- 如果您的專案屬於 Google Cloud 機構,您可能需要取得其他權限才能查看 Firebase 控制台中列出的專案。請與 Google Cloud 機構的人員聯絡,請對方授予您查看專案的適當角色,例如「瀏覽器」角色。
如果上述步驟都無法讓您找到或存取專案,請與 Firebase 支援團隊聯絡。
為什麼無法載入 Firebase 控制台?
如果您遇到以下任何問題,請參閱這份常見問題清單:
- Firebase 控制台中的頁面永遠不會載入完成。
- 頁面內的資料未如預期載入。
- 載入 Firebase 控制台時,您會收到瀏覽器錯誤訊息。
請試試看下列疑難排解步驟:
- 前往 Firebase 狀態資訊主頁的控制台列,查看是否有任何可能的服務中斷情形。
- 確認您使用的是支援的瀏覽器。
- 嘗試在無痕模式或私密瀏覽視窗中載入 Firebase 控制台。
- 停用所有瀏覽器擴充功能。
- 確認廣告攔截器、防毒軟體、Proxy、防火牆或其他軟體並未封鎖網路連線。
- 改用其他網路或裝置載入 Firebase 控制台。
- 如果您使用 Chrome,請查看開發人員工具控制台,確認是否有任何錯誤。
如果上述疑難排解步驟都無法解決問題,請與 Firebase 支援團隊聯絡。
如何決定 Firebase 控制台語言?
Firebase 控制台的語言設定取決於你在 Google 帳戶設定中選取的語言。
如要變更語言偏好設定,請參閱變更語言一文。
Firebase 控制台支援下列語言:
- 英文
- 巴西葡萄牙文
- 法文
- 德文
- 印尼文
- 日文
- 韓文
- 俄語
- 簡體中文
- 西班牙文
- 繁體中文
Firebase 控制台支援哪些角色和權限?
Firebase 控制台和 Google Cloud 控制台使用相同的基礎角色和權限。如要進一步瞭解角色和權限,請參閱 Firebase 身分與存取權管理說明文件。
Firebase 支援「擁有者」、「編輯者」和「檢視者」的基本 (基本) 角色:
- 專案「擁有者」可以將其他成員新增至專案、設定整合 (連結至 BigQuery 或 Slack 等服務的專案),並且擁有該專案的完整編輯權限。
- 專案「編輯者」具備該專案的完整編輯權限。
- 專案的「檢視者」只有該專案的讀取權限。請注意,Firebase 控制台目前不會向專案檢視者隱藏/停用編輯 UI 控制項,但具有「檢視者」角色的專案成員無法執行這些作業。
Firebase 也支援:
- Firebase 預先定義角色:這是收錄的 Firebase 專屬角色,可以比「擁有者」、「編輯者」和「檢視者」的基本角色更精細地控管存取權。
- 自訂角色:您可以建立完整自訂的 IAM 角色,依照貴機構的特定需求自訂一組權限。
定價
哪些產品會付費?哪些是免費?
Firebase 的付費基礎架構產品包括即時資料庫、Cloud Storage for Firebase、Cloud Functions、託管、Test Lab 和電話驗證。所有這些功能都提供免付費方案。
Firebase 也提供許多免付費產品,包括數據分析、雲端通訊、通知編輯器、遠端設定、應用程式索引、動態連結和當機回報。使用這些產品時,所有方案 (包括免付費 Spark 方案) 均須受產品的流量控管政策 (例如配額、公平存取和其他服務保護政策) 約束。此外,電話驗證以外的所有驗證功能皆免費。
Firebase 是否提供付費產品的免費試用抵免額?
您可以在 Google Cloud 免費試用方案中使用 Firebase 付費服務。Google Cloud 和 Firebase 的新使用者可在 90 天試用期間享有價值 $300 美元的免費 Cloud Billing 抵免額,盡情探索及評估 Google Cloud 與 Firebase 的產品與服務。
在 Google Cloud 免費試用期間,您會獲得一個 Cloud Billing 免費試用帳戶。在免費試用期間,使用該帳單帳戶的所有 Firebase 專案都會採用 Blaze 定價方案。
請放心,設定這個 Cloud Billing 免費試用帳戶並不會導致我們向您收費。除非您將 Cloud Billing 免費試用帳戶升級為付費帳戶,藉此明確啟用計費功能,否則我們不會向您收費。您可以在試用期間隨時升級為付費帳戶。升級後,您仍可使用剩餘的抵免額 (90 天內)。
免費試用期結束之後,您必須將專案降級至 Spark 定價方案,或在 Firebase 控制台中設定 Blaze 定價方案,才能繼續使用 Firebase 專案。
進一步瞭解 Google Cloud 免費試用期。
如何判斷我適合使用哪種定價方案?
Spark 定價方案
我們的 Spark 方案是免費開發應用程式的好地方。您可以使用各項免付費的 Firebase 功能,包括數據分析、通知編輯器和 Crashlytics 等,另外還有大量付費基礎架構功能。不過,如果您在一個月內超過 Spark 方案資源,系統就會在當月的剩餘時間內關閉應用程式。另外,使用 Spark 方案時,您也無法使用 Google Cloud 功能。
Blaze 定價方案
我們的 Blaze 方案專為正式版應用程式設計。升級至 Blaze 方案之後,您的應用程式也能使用付費的 Google Cloud 功能。你只需為實際使用的資源付費,因此可以視需求調度資源。我們致力於讓 Blaze 方案的價格與業界頂尖的雲端服務供應商相互競爭。
我要如何監控用量和帳單?
您可以在 Firebase 控制台中,前往下列任一資訊主頁追蹤專案資源用量:
Flame 定價方案怎麼了?
我們已於 2020 年 1 月移除 Flame 定價方案 (增加的配額為每月 $25 美元) 的新註冊選項。系統會提供寬限期,讓現有方案使用者從 Flame 方案中遷移專案。2022 年 2 月,Flame 定價方案中的其餘專案已降級為 Spark 定價方案。
因此,
- 現有的 Spark 和 Blaze 方案專案和任何新專案都無法再改用或註冊 Flame 方案。
- 如果將現有的 Flame 方案專案移至其他定價方案,該專案將無法改回使用 Flame 方案。
- 專案降級至 Spark 方案後,即可升級至 Blaze 方案,繼續享有額外的付費服務。
- 已從說明文件中移除對 Flame 方案的參照。
對 Flame 計畫淘汰事宜有其他疑問嗎?請參閱下方的其他常見問題。
想瞭解 Firebase 提供的其他定價方案嗎?請參閱我們的 Firebase 定價頁面!如要開始將任何現有專案遷移至其他定價方案,您可以在專案的 Firebase 控制台中進行。
關於停用 Flame 計畫的其他常見問題
我的專案、處理程序或業務模式依賴固定 Firebase 費用,該怎麼做?
訂閱 Blaze 定價方案,並請務必設定預算快訊。
我可以獲得特殊權限,以便建立新的 Flame 方案專案嗎?
不行,Firebase 未提供特殊存取權,讓您切換或註冊 Flame 方案。
我已將 Flame 方案變更為其他定價方案,該如何還原?
目前已無法再改用 Flame 方案。如要使用 Flame 方案提供的服務,請確認您使用的是 Blaze 定價方案,並考慮為專案設定預算快訊。
我的專案已在 Flame 方案淘汰時自動改成其他定價方案。該怎麼做?
如果專案需要的配額超出 Spark 方案提供的配額,您必須將專案升級至 Blaze 定價方案。
為什麼要淘汰 Flame 方案?
多年來,我們觀察到 Flame 方案的用量下降,且大多數使用該方案的專案都未充分發揮其價值。維持這個定價方案通常不符合成本效益,我們認為只要資源用於其他 Firebase 計畫,我們就能為所有人提供更好的服務。
Blaze 方案的免付費用量與 Spark 方案的免付費用量有何不同?
Blaze 方案的免付費用量會每日計算。另外,Cloud Functions、電話驗證和 Test Lab 的 Spark 方案用量限制也不同。
以 Cloud Functions 來說,Blaze 方案的免付費用量是以 Cloud Billing 帳戶層級計算 (而非專案層級),並適用下列限制:
- 每月 200 萬次叫用
- 每月 400K GB/秒
- 每月 200K CPU 使用時間
- 每月 5 GB 的網路輸出量
在電話驗證方面,Blaze 方案的免付費用量會按月計算。
以 Test Lab 來說,Blaze 方案的免付費用量有下列限制:
- 每天 30 部實體裝置
- 每天 60 分鐘虛擬裝置
從 Spark 變更為 Blaze 方案後,免費用量配額是否會重設?
Blaze 方案包含 Spark 方案的免付費用量。轉移至 Blaze 方案時,不會重設免付費用量。
什麼是「同時建立資料庫連線」?
同時連線等同於行動裝置、瀏覽器分頁或連線至資料庫的伺服器應用程式。Firebase 對應用程式資料庫同時連線的次數設有嚴格限制。這些限制是為了保護 Firebase 和使用者避免使用者遭到濫用。
Spark 方案上限為 100 個,無法提高。Flame 與 Blaze 方案的每個資料庫最多只能同時連線 200,000 個連線。
這個上限和應用程式使用者總數不同,因為使用者不會一次連線。如果同時需要超過 200,000 個連線,請參閱 使用多個資料庫調度資源。
如果超過即時資料庫的 Spark 方案儲存空間或下載限制,會怎麼樣?
為了提供可預測的價格,Spark 方案的可用資源量設有上限。也就是說,如果當月超過任何方案限制,系統就會關閉應用程式,以免產生更多資源用量或產生額外費用。
如果超過即時資料庫的 Spark 方案同時連線限制,會怎麼樣?
當應用程式達到 Spark 方案的並行限制時,所有後續連線都會遭拒,直到部分現有連線關閉為止。即便使用者已連線,應用程式仍會繼續運作。
Firebase 與 Google Cloud 的整合如何運作?
Firebase 與 Google Cloud 緊密整合,Firebase 和 Google Cloud 會共用專案,因此專案可以啟用 Firebase 服務和 Google Cloud 服務。您可以透過 Firebase 控制台或 Google Cloud 控制台存取同一項專案。詳細說明:
- 某些 Firebase 產品可直接由 Google Cloud 支援,如 Cloud Storage for Firebase。Google Cloud 支援的產品清單會持續增加。
- 可共用多項設定,包括協作者和帳單資訊。Firebase 和 Google Cloud 的用量會顯示在同一張帳單中。
此外,升級至 Blaze 方案後,您就能在 Firebase 專案中直接使用任何 Google Cloud 世界級的基礎架構式服務 (IaaS) 和 API,並按照標準 Google Cloud 定價付費。您也能將資料從 Google Cloud 直接匯出至 BigQuery 來進行分析。詳情請參閱「將 BigQuery 與 Firebase 連結」一文。
與 Google Cloud 搭配 Firebase 使用時,Google Cloud 有許多優點能提升安全性、改善延遲,並節省許多時間,比起其他非共置雲端服務。如要瞭解詳情,請造訪 Google Cloud 網站。
如果在 Google Cloud 控制台中新增或移除該專案的帳單帳戶,會對我的 Firebase 專案造成什麼影響?
如果 Google Cloud 控制台的專案已新增 Cloud Billing 帳戶,且該專案目前採用 Spark 方案,該項專案就會自動升級至 Firebase Blaze 方案。
相對地,如果您將現有的有效 Cloud Billing 帳戶從 Google Cloud 控制台的專案中移除,該專案就會降級為 Firebase Spark 方案。
我可以隨時升級、降級或取消嗎?
可以,您隨時可以升級、降級或取消。請注意,我們不會針對降級或取消服務,提供按比例計算的退款。 也就是說,如果您在帳單週期結束前降級或取消服務,仍需支付當月剩餘時間的費用。
我可以取得哪些支援服務?
所有 Firebase 應用程式 (包括採用免付費方案的應用程式) 均在美國太平洋營業時間內,享有 Firebase 團隊提供的電子郵件支援服務。針對帳單相關問題、帳戶相關問題、技術 (疑難排解) 問題和事件報表,所有帳戶皆可享有無限量的支援服務。
我可以設定 Blaze 方案的用量上限嗎?
不可以,您目前無法限制 Blaze 方案的用量。我們正在評估 Blaze 方案的用量上限選項。
Blaze 使用者可以為專案或帳戶設定預算,並在支出接近上限時收到快訊。瞭解如何設定預算快訊。
什麼是自動備份?是否提供每小時備份服務?
自動備份是 Blaze 定價方案客戶的進階功能,每天備份 Firebase 即時資料庫資料一次,並上傳至 Google Cloud Storage。
我們不提供每小時備份。
你是否提供開放原始碼、非營利機構或教育版折扣?
我們的 Spark 方案可供任何個人或機構使用,包括非營利組織、學校和開放原始碼專案。由於這些方案已經包含充足的配額,我們不為開放原始碼、非營利或教育專案提供任何特別折扣或方案。
您是否提供企業合約、定價、支援或專屬的基礎架構託管服務?
我們的 Blaze 方案適合各種規模的企業,而我們的服務水準協議符合或超越雲端基礎架構的業界標準。不過,我們目前並未提供企業合約、定價或支援,也不會針對即時資料庫等服務提供專屬的基礎架構託管服務 (即地端部署安裝)。我們正在努力添加這些功能。
是否提供自訂價格?我只想以即付即用的方式購買一或兩項功能。
Blaze 方案提供臨時定價,您只需要為實際使用的功能付費。
Firebase 付費方案如何與 Google Ads 搭配運作?付費方案提供免付費廣告抵免額嗎?
Firebase 定價方案與 Google Ads 各自獨立,因此不會有免付費廣告抵免額。Firebase 開發人員可以將 Google Ads 帳戶「連結」至 Firebase,藉此支援轉換追蹤功能。
所有廣告活動都直接在 Google Ads 中管理,Google Ads 帳單設定是透過 Google Ads 控制台管理。
Cloud Functions 定價
為什麼需要帳單帳戶才能使用 Cloud Functions for Firebase?
Cloud Functions for Firebase 需要使用某些付費 Google 服務。使用 Firebase CLI 11.2.0 以上版本新增函式時,系統會使用 Cloud Build 和 Artifact Registry。部署至較舊版本時也會使用 Cloud Build,但您需要 Container Registry 和 Cloud Storage 來儲存儲存空間,而非使用 Artifact Registry。除了現行的定價之外,您也必須支付這些服務的用量費用。
Firebase CLI 11.2.0 以上版本的儲存空間
Artifact Registry 提供用來執行函式的容器。Artifact Registry 提供前 500 MB 免費,因此首次部署函式可能不會產生任何費用。超過該門檻時,每增加 1 GB 儲存空間的費用為每月 $0.10 美元。
Firebase CLI 11.1.x 及先前版本的儲存空間
針對部署至舊版的函式,Container Registry 會提供容器來執行函式。系統將針對部署函式所需的每個容器向您收費。您可能會注意到儲存的每個容器收取些許費用。舉例來說,1 GB 的儲存空間月費為 $0.026 美元。
如要進一步瞭解帳單可能會有的異動,請參閱下列資訊
- Cloud Functions 定價:現有的免費方案不會改變。
- Cloud Build 定價:Cloud Build 提供免付費方案,
- Artifact Registry 定價。
- Container Registry 定價。
Cloud Functions for Firebase 是否仍有免費用量?
是,在 Blaze 方案中,Cloud Functions 針對叫用、運算時間和網際網路流量提供免費方案。每月提供前 2,000,000 次叫用、400,000 GB/秒、200,000 個 CPU 使用率和 5 GB 的網際網路輸出流量,每月不需額外付費。系統只會針對超出這些門檻的用量向你收費。
在前 500 MB 的免付費儲存空間之後,每項部署作業都會產生函式容器所用儲存空間的小規模費用。如果您的開發程序需要部署函式以進行測試,您可以在開發期間使用 Firebase 本機模擬器套件,進一步降低成本。
請參閱 Firebase 定價方案和 Cloud Functions 定價範例情境。
Firebase 是否打算提高 Cloud Functions for Firebase 的配額與限制?
不可以。除了移除版本時間上限外,我們沒有變更配額的計畫。在達到每日建構配額達到 120 分鐘時,系統不會顯示錯誤或警告,而是按照 Blaze 定價方案的條款向您收費。請參閱配額與限制。
可以獲得 $300 美元的 Google Cloud 抵免額嗎?
可以。您可以在 Google Cloud 控制台中建立 Cloud Billing 帳戶、取得 $300 美元的抵免額,然後將該 Cloud Billing 帳戶連結至 Firebase 專案。
如要進一步瞭解 Google Cloud 抵免額,請參閱這篇文章。
請注意,如果您這麼做,則必須在 Firebase 控制台中設定 Blaze 定價方案,這樣 $300 美元的抵免額用完後,您的專案才能繼續運作。
我想按照程式碼研究室的說明操作 Firebase。可以提供臨時帳單帳戶嗎?
抱歉,即使沒有 Cloud Billing 帳戶,您也可以使用 Firebase 模擬器進行開發。或者,您也可以申請 Google Cloud 免費試用。如果您在支付帳單費用時仍無法順利付款,請與 Firebase 支援團隊聯絡。
我擔心要有一張大筆帳單。
您可以在 Google Cloud 控制台中設定預算快訊,以便控管費用。此外,您也可以針對各個函式建立的計費執行個體數量設定限制。如要瞭解一般情境的費用,請參閱 Cloud Functions 定價範例。
如何查看目前的帳單費用?
在 Firebase 控制台中查看「用量與計費」資訊主頁。
我使用 Firebase Extensions,我需要有帳單帳戶嗎?
是,由於擴充功能使用 Cloud Functions,因此擴充功能使用的費用與其他函式相同。
如要使用擴充功能,您必須升級至 Blaze 定價方案。除了使用 Firebase 服務所產生的任何費用外,系統會針對您安裝的每個擴充功能,向您收取少許費用 (通常每月約 $0.01 美元)。
Cloud Storage for Firebase 定價
如何預測上傳和下載作業的費用金額?
請前往 Firebase 定價頁面並使用 Blaze 方案計算機。計算機會列出 Cloud Storage for Firebase 的所有用量類型。
使用滑桿輸入 Storage 值區的預期用量。用來估算每月帳單費用。
如果超過 Cloud Storage for Firebase 的 Spark 方案上傳、下載或儲存空間限制,會怎麼樣?
如果在 Spark 方案中超出專案的 Cloud Storage 限制,結果取決於超出的限制類型:
- 如果超出「儲存的 GB」上限,您就無法在專案中儲存更多資料,除非您移除部分儲存的資料,或升級至提供更多儲存空間的方案,或升級至無限儲存空間。
- 如果超過已下載的 GB 上限,除非升級至限制較少或無限制的方案,否則應用程式要到隔天 (美國太平洋時間凌晨 12 點) 才能下載更多資料。
- 如果超出上傳或下載作業限制,除非升級至限制較少或無限制的方案,否則必須等到隔天午夜 (美國太平洋時間) 才能上傳或下載更多資料。
隱私權
哪裡可以找到 Firebase 的隱私權與安全性相關資訊?
查看「Firebase 的隱私權與安全性」頁面。
Firebase SDK 會記錄 Analytics (分析) 以外的任何使用情形/診斷資訊嗎?
是,目前這個 API 僅適用於 iOS,但日後可能會有變動。根據預設,Firebase Apple 平台 SDK 包含 FirebaseCoreDiagnostics
架構。Firebase 會使用這個架構收集 SDK 使用情形與診斷資訊,協助日後產品改進項目的優先順序。FirebaseCoreDiagnostics
為選用項目,因此如果您不想傳送 Firebase 診斷記錄,只要取消程式庫與應用程式的連結即可。您可以前往 GitHub 瀏覽完整原始碼,包括記錄值
A/B 測試
A/B 測試:可以建立並執行多少實驗?
每個專案最多能有 300 個實驗,其中可包含最多 24 個執行中的實驗,其餘實驗則以草稿或已完成的形式完成。
A/B 測試:在取消連結專案和重新連結 Google Analytics (分析) 後,為什麼無法查看實驗?
如果連結至其他 Google Analytics (分析) 資源,您將無法存取先前建立的實驗。如要重新取得先前實驗的存取權,請將專案重新連結至建立實驗時連結的 Google Analytics (分析) 資源。
A/B 測試:建立遠端設定實驗時,為什麼會收到「專案未連結至 Google Analytics (分析)」的訊息?
如果您已連結 Firebase 和 Google Analytics (分析),但仍看到未連結 Google Analytics (分析) 的訊息,請確認專案中「所有」應用程式已有 Analytics (分析) 串流。目前,專案中的所有應用程式都必須連結至 Google Analytics (分析) 串流才能使用 A/B 測試功能。
在 Firebase 控制台的「Google Analytics (分析) 整合詳細資料」頁面中,您可以點選「settings專案設定 chevron_right 整合」chevron_right「Google Analytics (分析)」chevron_right「管理」,查看所有有效串流的清單。
為沒有 Google Analytics (分析) 串流的應用程式建立 Google Analytics (分析) 串流,應該就能解決問題。 您可以透過下列幾種方式為缺少的應用程式建立串流:
-
如果只有一個或兩個應用程式缺少相關聯的 Google Analytics (分析) 串流,您可以選擇下列其中一種方法新增 Google Analytics (分析) 串流:
- 在 Firebase 控制台刪除並重新加入任何未啟用串流的應用程式。
- 在 Google Analytics (分析) 控制台中選取「管理」,然後依序點選「資料串流」>「新增串流」、新增缺少的應用程式詳細資料,然後按一下「註冊應用程式」。
-
如果您有多個缺少應用程式串流,若要建立缺少的應用程式串流,最快也最有效率的方法,就是取消連結並重新連結 Google Analytics (分析) 資源:
- 在 settings「專案設定」中選取「整合」。
- 在「Google Analytics (分析)」資訊卡中,按一下「管理」,即可存取 Firebase 和 Google Analytics (分析) 設定。
- 記下 Google Analytics (分析) 資源 ID 和已連結的 Google Analytics (分析) 帳戶。
- 按一下 more_vert「更多」,然後選取「取消 Analytics (分析) 與這項專案的連結」。
-
查看顯示的警告訊息 (請放心,您會在下一個步驟中重新連結同一個資源),然後按一下「取消連結 Google Analytics (分析)」。
取消連結後,系統會將您重新導向至「Integrations」(整合) 頁面。 - 在「Google Analytics (分析)」資訊卡中,按一下「啟用」,開始重新連結程序。
- 從「選取帳戶」清單中選取您的 Analytics (分析) 帳戶。
-
按一下「自動在這個帳戶中建立新資源」旁的 edit「編輯」,然後在顯示的「Analytics (分析) 資源」清單中選取所需資源 ID。
系統會隨即顯示專案中所有應用程式的清單。系統會列出各個應用程式的串流對應,而沒有串流的應用程式則會為其建立串流。 - 按一下「啟用 Google Analytics (分析)」重新連結資源。
- 按一下「完成」。
執行上述步驟後,如果使用遠端設定建立 A/B 測試時發生錯誤,請 聯絡 Firebase 支援團隊。
AdMob
AdMob:我可以將 Windows 應用程式連結至 Firebase 嗎?
不可以,目前不支援 Windows 應用程式。
AdMob:為什麼我無法從 Firebase 控制台將應用程式連結至 AdMob?
您可以透過 AdMob 控制台,將 AdMob 應用程式連結至 Firebase 應用程式。 瞭解詳情。
AdMob:將 Firebase 應用程式連結至 AdMob 應用程式時,我必須具備哪些權限或存取權?
如要進行這類連結,您必須具備下列存取權:
- AdMob:您必須是 AdMob 管理員。
- Firebase:您必須具備
firebase.links.create
權限,擁有者角色和 Firebase 管理員角色都具有該權限。 - Google Analytics (分析):針對與 Firebase 專案相關聯的資源,您必須具備「編輯」或「管理使用者」角色。瞭解詳情。
AdMob:同一個 AdMob 帳戶中的多位使用者可以連結 AdMob 應用程式和 Firebase 應用程式嗎?
如果是多使用者 AdMob 帳戶,則只有建立第一個 Firebase 連結並接受《Firebase 服務條款》的使用者,才能在 AdMob 應用程式和 Firebase 應用程式之間建立新連結。
AdMob:如要使用 AdMob,該使用哪些 SDK?
如要使用 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.2.0'
- C++ 專案和 Unity 專案:請按照相關說明文件中的指示操作。
數據分析
Analytics (分析):為什麼使用 Firebase 產品時,我們建議將 Google Analytics (分析) 設為推薦項目?
Google Analytics (分析) 是沒有用量限制的免費數據分析解決方案,可與 Firebase 功能搭配運作,提供強大的深入分析。因此,您可以在 Crashlytics 中查看事件記錄、FCM 的通知效率、Dynamic Links 的深層連結效能,以及 Google Play 中的應用程式內購資料。支援遠端設定、遠端設定個人化等進階指定目標對象。
Google Analytics (分析) 是 Firebase 控制台中的一項智慧功能,可提供可做為行動依據的洞察資料,協助您開發優質應用程式、拓展使用者族群及提高收益。
如要開始使用,請參閱說明文件。
Analytics (分析):如何控管與 Firebase 其餘部分共用 Analytics (分析) 資料的方式?
根據預設,Google Analytics (分析) 資料會用於強化其他 Firebase 和 Google 功能。你隨時可以在專案設定中控管 Google Analytics (分析) 資料的共用方式。進一步瞭解資料共用設定。
Analytics (分析):如何更新 Analytics (分析) 資源設定?
您可以在 Google Analytics (分析) 資源的「管理」頁面中更新資源設定,例如:
- 資料共用設定
- 資料保留設定
- 時區和貨幣設定
如要更新資源設定,請按照下列步驟操作:
iOS 應用程式中的 Analytics (分析):我能否安裝 Analytics (分析),而不啟用廣告標示和廣告識別碼收集功能?
是,詳情請參閱「 設定資料收集和用量」頁面。
數據分析:2021 年 10 月更新的 Google Analytics (分析) 部分有何異動?
如需這些異動的摘要,請參閱 Firebase 說明中心的「Google Analytics for Firebase 全新 Google Analytics (分析) 4 功能」一文。
Analytics (分析):將 Firebase 與 Google Analytics (分析) 取消連結後,為什麼 Firebase 控制台未顯示 Analytics (分析) 資料?
Analytics (分析) 資料會保留在 Google Analytics (分析) 資源中,而非 Firebase 專案中。如果刪除或取消連結資源,Firebase 就無法存取 Analytics (分析) 資料,您也會在 Firebase 控制台中看到空白的「Analytics (分析)」資訊主頁。請注意,由於資料仍會保留在先前連結的資源中,因此您隨時可以將資源重新連結至 Firebase,並在 Firebase 控制台中查看 Analytics (分析) 資料。
將全新的 Google Analytics (分析) 帳戶 (以及新的 Google Analytics (分析) 資源) 連結至 Firebase 專案,Firebase 中的「Analytics (分析)」資訊主頁會產生空白的資訊主頁。不過,如果先前連結的資源仍存在,您就可以將現有資料從舊資源移至新資源。
Analytics (分析):如果我的 Analytics (分析) 資源及其資料 遭到刪除,有沒有方法可以取回這些資料?
不可以。資源刪除後,您無法取消刪除資源,也無法擷取該資源中儲存的先前收集的 Analytics (分析) 資料。
如要再次開始使用 Google Analytics (分析),您可以將新資源或現有資源連結至 Firebase 專案。您可以在 Firebase 控制台或 Google Analytics (分析) UI 中完成這項連結。進一步瞭解將 Google Analytics (分析) 資源連結至 Firebase 專案。
Analytics (分析):如果我刪除了 Analytics (分析) 資源,我可以將新的 Google Analytics (分析) 資源連結至 Firebase 專案,並再次開始使用 Analytics (分析) 嗎?
如要再次開始使用 Google Analytics (分析),您可以將新資源或現有資源連結至 Firebase 專案。您可以在 Firebase 控制台或 Google Analytics (分析) UI 中完成這項連結。進一步瞭解將 Google Analytics (分析) 資源連結至 Firebase 專案。
請注意,所有 Analytics (分析) 資料都儲存在資源 (而非 Firebase 專案) 中,因此無法擷取先前收集的 Analytics (分析) 資料。
Analytics (分析):刪除 Analytics (分析) 資源會對 Firebase 產品或整合的 Google 產品造成什麼影響?
有些 Firebase 產品需要使用 Google Analytics (分析) 整合功能。Analytics (分析) 資源及其資料刪除後,如果您使用下列產品,會發生下列情況:
- Crashlytics - 你無法再查看未發生當機情形的使用者、導覽標記記錄檔和/或當機風險驟升快訊。
- 雲端通訊和應用程式內通訊:您無法再使用指定目標、廣告活動指標、目標對象區隔和數據分析標籤。
- 遠端設定:您無法再使用目標設定或個人化功能。
- A/B 測試:由於 Google Analytics (分析) 提供實驗評估功能,因此您無法再使用 A/B 測試功能。
- Dynamic Links:任何需要使用 Google Analytics (分析) 資料的功能都會中斷。
此外,以下整合功能也會受到影響:
數據分析:如何區隔「尚未」符合特定條件的使用者?
您可以透過「排除指定」這些使用者來重新找出他們的問題。例如,重新將問題想成「不向已購買商品的使用者顯示廣告」,然後將這些使用者的目標對象重新構為指定的目標對象。
數據分析:Firebase 控制台是否也能在 Google Analytics (分析) 介面中定義目標對象和/或事件?
系統會同步處理您的目標對象和使用者屬性。針對部分功能,您必須使用 Google Analytics (分析) 介面,例如區隔和封閉式漏斗。您可以透過 Firebase 控制台的深層連結直接存取 Google Analytics (分析) 介面。
您在 Firebase 控制台中所做的任何變更,都能在 Google Analytics (分析) 中執行,而 Firebase 會反映這些變更。
驗證機制
Firebase 驗證:哪些地區支援電話驗證?
Firebase 驗證功能支援全球的電話號碼驗證,但並非所有網路都能穩定傳送驗證訊息。下列區域的遞送率良好,應該適合用於電話驗證。如上所述,由於運送成功率過低,部分貨運公司無法在該地區提供服務。
區域 | 代碼 |
---|---|
AD | 安道爾 |
AE | 阿拉伯聯合大公國 |
AF | 阿富汗 |
AG | 安地卡及巴布達 |
AL | 阿爾巴尼亞 |
上午 | 亞美尼亞 |
AO | 安哥拉 |
AR | 阿根廷 |
AS | 美屬薩摩亞 |
時間: | 奧地利 |
AU | 澳洲 |
AW | 阿魯巴 |
AZ | 亞塞拜然 |
BA | 波士尼亞與赫塞哥維納 |
BB | 巴貝多 |
BD | 孟加拉 |
BE | 比利時 |
BF | 布吉納法索 |
BG | 保加利亞 |
BJ | 貝南 |
BM | 百慕達 |
BN | 汶萊 |
BO | 玻利維亞 |
巴西 | 巴西 |
BS | 巴哈馬 |
BT | 不丹 |
BW | 波札那 |
BY | 白俄羅斯 |
Google Buzz | 貝里斯 |
CA | 加拿大 |
CD | 剛果 (金夏沙) |
CF | 中非共和國 |
CG | 剛果 (布拉薩) |
CH | 瑞士 |
CI | 象牙海岸 |
CK | 庫克群島 |
CL | 智利 |
CM | 喀麥隆 |
CO | 哥倫比亞 |
CR | 哥斯大黎加 |
CV | 維德角 |
CW | 古拉索 |
CY | 賽普勒斯 |
CZ | 捷克共和國 |
DE | 德國 |
DJ | 吉布地 |
丹麥 | 丹麥 |
DM | 多米尼克 |
DO | 多明尼加共和國 |
DZ | 阿爾及利亞 |
軟座 | 厄瓜多 |
EG | 埃及 |
ES | 西班牙 |
加時賽 | 衣索比亞 |
FI | 芬蘭 |
FJ | 斐濟 |
FK | 福克蘭群島 (馬爾維納斯) |
FM | 密克羅尼西亞聯邦 |
FO | 法羅群島 |
FR | 法國 |
正式發布版 | 加彭 |
GB | 英國 |
GD | 格瑞那達 |
GE | 喬治亞州 |
進球 | 法屬圭亞那 |
GG | 根西島 |
GH | 迦納 |
GI | 直布羅陀 |
GL | 格陵蘭 |
總經理 | 甘比亞 |
賽 | 瓜地洛普 |
GQ | 赤道幾內亞 |
GR | 希臘 |
GT | 瓜地馬拉 |
GY | 蓋亞那 |
HK | 中國香港特別行政區 |
HN | 宏都拉斯 |
人資 | 克羅埃西亞 |
中場休息 | 海地 |
HU | 匈牙利 |
ID | 印尼 |
IE | 愛爾蘭 |
IL | 以色列 |
IM | 曼島 |
印度 | 印度 |
IQ | 伊拉克 |
IT | 義大利 |
JE | 澤西島 |
JM | 牙買加 |
JO | 約旦 |
日本 | 日本 |
KE | 肯亞 |
KG | 吉爾吉斯 |
KH | 柬埔寨 |
KM | 葛摩 |
KN | 聖克里斯多福及尼維斯 |
KR | 南韓 |
KW | 科威特 |
KY | 開曼群島 |
KZ | 哈薩克 |
LA | 寮國 |
觸身點 | 黎巴嫩 |
LC | 聖露西亞 |
LI | 列支敦斯登 |
LK | 斯里蘭卡 |
LS | 賴索托 |
LT | 立陶宛 |
LU | 盧森堡 |
LV | 拉脫維亞 |
LY | 利比亞 |
MA | 摩洛哥 |
MD | 摩爾多瓦 |
ME | 蒙特內哥羅 |
MF | 法屬聖馬丁 |
MG | 馬達加斯加 |
MK | 馬其頓共和國 |
MM | 緬甸 |
MN | 蒙古 |
個月 | 中華人民共和國澳門特別行政區 |
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 | 盧安達 |
對手射門 | 沙烏地阿拉伯 |
SC | 塞席爾 |
瑞典 | 瑞典 |
SG | 新加坡 |
SH | 聖赫勒拿島 |
SI | 斯洛維尼亞 |
SK | 斯洛伐克 |
無冷氣臥鋪 | 獅子山 |
SN | 塞內加爾 |
SR | 蘇利南 |
ST | 聖多美普林西比 |
救球 | 薩爾瓦多 |
SZ | 史瓦濟蘭 |
TC | 英屬土克凱可群島 |
TG | 多哥 |
泰國 | 泰國 |
TL | 東帝汶 |
TM | 土庫曼 |
TO | 東加 |
TR | 土耳其 |
TT | 千里達及托巴哥 |
台灣 | 臺灣 |
TZ | 坦尚尼亞聯合共和國 |
通用 Analytics | 烏克蘭 |
UG | 烏干達 |
美國 | 美國 |
UY | 烏拉圭 |
UZ | 烏茲別克 |
VC | 聖文森及格瑞那丁 |
VE | 委內瑞拉 (玻利瓦共和國) |
VG | 英屬維京群島 |
VI | 美屬維京群島 |
VN | 越南 |
WS | 薩摩亞 |
YE | 葉門 |
YT | 馬約特 |
ZA | 南非 |
ZM | 尚比亞 |
ZW | 辛巴威 |
Firebase 驗證:使用電話驗證時,如何防止簡訊遭到濫用?
為保護專案免受簡訊流量激增和 API 濫用行為侵擾,請按照下列步驟操作:
考慮設定簡訊區域政策
-
找出傳送大量簡訊和極少 (或零) 已驗證簡訊的區域。已驗證/已傳送的比率即為您的成功率。 健康狀態良好的成功率通常介於 70-85% 的範圍內,這是因為簡訊無法保證簡訊傳遞的通訊協定,而且部分地區可能會遭遇濫用行為。成功率低於 50% 表示許多已傳送簡訊,但登入成功的次數很少,這是不肖人士和簡訊流量激增的常見指標。
使用簡訊地區政策拒絕成功率低的簡訊區域,或僅開放特定市場的應用程式發行特定地區。
限制您的授權驗證網域
您可以使用驗證設定資訊主頁管理授權網域。根據預設,系統會為核准的驗證網域新增 localhost
網域,以簡化開發作業。請考慮從「實際執行」專案中授權網域中移除 localhost
,以防止惡意行為人在「其」localhost
上執行程式碼以存取您的實際工作環境專案。
啟用並強制執行 App Check
啟用 App Check,藉此認證要求只會來自與專案相關聯的應用程式,藉此保護專案不受 API 濫用行為侵擾。
如要搭配 Firebase 驗證使用 App Check,您必須升級至透過 Identity Platform 使用 Firebase 驗證。
請記住,您必須在 Firebase 主控台中對驗證強制執行 App Check (建議您先監控流量,再強制執行)。此外,請仔細檢查 reCAPTCHA Enterprise 核准的網站清單,確認是否只包含實際工作環境的網站,且 App Check 中為您的專案註冊的應用程式清單正確無誤。
請注意,App Check 會斷言呼叫是否來自您註冊的應用程式,有助於防範自動化攻擊。但不會防止使用者以非預期的方式使用您的應用程式,例如啟動後從未完成登入流程,以產生已傳送的簡訊。
Firebase 驗證:電話號碼是否可透過電話驗證轉移至新的電信業者?
屆時,電信業者之間攜碼轉移的號碼將導致這些使用者的所有簡訊無法傳送。這個問題沒有解決方法,而 Firebase 正在設法解決這個問題。
Firebase 驗證:我的 Android 應用程式為何會收到下列錯誤:
Google sign in failed
?
Google sign in failed
如果遇到下列錯誤,請按照這份常見問題中的疑難排解步驟操作:
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)
確認已正確啟用做為驗證提供者的 Google 登入功能:
在 Firebase 控制台中,開啟「Authentication」(驗證) 專區。
在「Sign in method」分頁中,停用並重新啟用 Google 登入方式 (即使已啟用):
開啟 Google 登入方法並停用,然後按一下「Save」。
重新開啟 Google 登入方法並啟用該方法,然後按一下「儲存」。
請確認應用程式使用最新的 Firebase 設定檔 (
google-services.json
)。
取得應用程式的設定檔。如果還是收到錯誤訊息,請確認是否仍然出現錯誤。如果符合,請繼續下一個疑難排解步驟。
確認存在必要的基礎 OAuth 2.0 用戶端。
在 Google Cloud 控制台的「Credentials」(憑證) 頁面中,查看「OAuth 2.0 Client ID」(OAuth 2.0 用戶端 ID) 部分。
如果「沒有」有 OAuth 2.0 用戶端 (而且您已完成上述所有疑難排解步驟),請與支援團隊聯絡。
Firebase 驗證:我的 Apple 平台應用程式為何會收到下列錯誤:
You must specify <clientID> in <GIDConfiguration>
?
You must specify <clientID> in <GIDConfiguration>
如果遇到下列錯誤,請按照這份常見問題中的疑難排解步驟操作:
You must specify |clientID| in |GIDConfiguration|
確認已正確啟用做為驗證提供者的 Google 登入功能:
在 Firebase 控制台中,開啟「Authentication」(驗證) 專區。
在「Sign in method」分頁中,停用並重新啟用 Google 登入方式 (即使已啟用):
開啟 Google 登入方法並停用,然後按一下「Save」。
重新開啟 Google 登入方法並啟用該方法,然後按一下「儲存」。
請確認應用程式使用最新的 Firebase 設定檔 (
GoogleService-Info.plist
)。
取得應用程式的設定檔。如果還是收到錯誤訊息,請確認是否仍然出現錯誤。如果符合,請繼續下一個疑難排解步驟。
確認存在必要的基礎 OAuth 2.0 用戶端。
在 Google Cloud 控制台的「Credentials」(憑證) 頁面中,查看「OAuth 2.0 Client ID」(OAuth 2.0 用戶端 ID) 部分。
如果「沒有」有 OAuth 2.0 用戶端 (而且您已完成上述所有疑難排解步驟),請與支援團隊聯絡。
Firebase 驗證:我的網頁應用程式為什麼會出現下列錯誤:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
?
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
如果遇到下列錯誤,請按照這份常見問題中的疑難排解步驟操作:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
確認已正確啟用做為驗證提供者的 Google 登入功能:
在 Firebase 控制台中,開啟「Authentication」(驗證) 專區。
在「Sign in method」分頁中,停用並重新啟用 Google 登入方式 (即使已啟用):
開啟 Google 登入方法並停用,然後按一下「Save」。
重新開啟 Google 登入方法並啟用該方法,然後按一下「儲存」。
此外,在「Authentication」部分的「Google」登入供應商設定中,確認 OAuth 用戶端 ID 和密鑰與 Google Cloud 控制台「憑證」頁面中顯示的網路用戶端相符 (在「OAuth 2.0 用戶端 ID」一節中)。
Firebase 驗證:在我的網頁應用程式中,為何登入後會失敗,並顯示以下錯誤:
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation
?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation
如果遇到下列錯誤,請按照這份常見問題中的疑難排解步驟操作:
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
發生這個錯誤,可能是因為重新導向網域未列為 Firebase 驗證的授權網域,或者與 Firebase 驗證服務搭配使用的 API 金鑰無效。
首先,請確認 YOUR_REDIRECT_DOMAIN 位於 Firebase 專案的授權網域清單中。如果其中已列出您的重新導向網域,請繼續排解無效的 API 金鑰問題。
根據預設,Firebase Authentication JS SDK 會使用標示為 Browser key
的 Firebase 專案 API 金鑰,並使用這個金鑰,依據授權網域清單,驗證登入重新導向網址是否有效。驗證程序會根據您存取 Authentication SDK 的方式取得這個 API 金鑰:
如果您使用託管提供的驗證輔助程式,透過 Authentication JS SDK 登入,則每當您部署至 Firebase 託管時,Firebase 就會自動將您的 API 金鑰與其他 Firebase 設定搭配使用。確認網頁應用程式
firebaseConfig
中的authDomain
已正確設定,可將其中一個網域用於該託管網站。如要確認這一點,請前往https://authDomain__/firebase/init.json
,並檢查projectId
是否與firebaseConfig
相符。如果您是自行代管登入程式碼,則可以使用
__/firebase/init.json
檔案,將 Firebase 設定提供給自行託管的 Authentication JS SDK 重新導向輔助程式。這個設定檔中列出的 API 金鑰和projectId
應與您的網頁應用程式firebaseConfig
相符。
檢查並確認這個 API 金鑰尚未刪除:前往 Google Cloud 控制台的「APIs & Services」(API 和服務) >「Credentials」(憑證) 面板,當中會列出專案的所有 API 金鑰。
如果
Browser key
「尚未」刪除,請檢查下列事項:確認 Firebase Authentication API 列在允許金鑰存取的 API 清單中 (進一步瞭解 API 金鑰的 API 限制)。
如果您是自行代管登入程式碼,請確認
__/firebase/init.json
檔案中列出的 API 金鑰與 Cloud 控制台中的 API 金鑰相符。視需要修改檔案中的金鑰,然後重新部署應用程式。如果
Browser key
已刪除,您可以讓 Firebase 為您產生新的 API 金鑰:在 Firebase 控制台中,依序前往 settings >「專案設定」,然後在「您的應用程式」部分按一下網頁應用程式。這個動作會自動建立一個 API 金鑰,您可以在網頁應用程式的「SDK 設定與設定」部分查看該金鑰。
請注意,在 Cloud 控制台中,這個新的 API 金鑰不會稱為
Browser key
,而是與 Firebase 網頁應用程式的暱稱相同。如果您決定為這組新的 API 金鑰新增 API 限制,請確認 Firebase Authentication API 列在允許的 API 清單中。建立新的 API 金鑰後,請完成下列步驟:
Firebase 驗證:如何手動建構 OAuth 網路用戶端?
開啟 Google Cloud 控制台的「Credentials」(憑證) 頁面。
選取頁面頂端的「Create credentials」(建立憑證) >「OAuth client ID」(OAuth 用戶端 ID)。
如果系統提示您設定同意畫面,請按照畫面上的指示操作,然後繼續完成這個常見問題。
建立 OAuth 網路用戶端:
在「應用程式類型」部分,選取「網頁應用程式」。
針對「授權的 JavaScript 來源」,新增下列指令:
http://localhost
http://localhost:5000
https://PROJECT_ID.firebaseapp.com
https://PROJECT_ID.web.app
針對「授權重新導向 URI」,新增下列程式碼:
https://PROJECT_ID.firebaseapp.com/__/auth/handler
https://PROJECT_ID.web.app/__/auth/handler
儲存 OAuth 用戶端。
將新的 OAuth 用戶端 ID 和用戶端密鑰複製到剪貼簿。
在 Firebase 控制台中,開啟「Authentication」(驗證) 專區。
在「Sign in method」分頁中,開啟「Google 登入」供應商,然後貼上您從 Google Cloud 控制台建立及複製的網路伺服器用戶端 ID 和密鑰。按一下「Save」(儲存)。
Firebase 驗證:使用者以電子郵件地址和密碼註冊時,系統可能會將確認電子郵件傳送給電子郵件範本。%APP_NAME%
的判定方式為何?
2022 年 12 月前,電子郵件範本中的 %APP_NAME%
會填入 OAuth 品牌名稱。每當有 Android 應用程式在 Firebase 專案中註冊時,系統就會自動佈建這個名稱。現在,由於 OAuth 品牌只會在 Google 登入啟用時佈建,因此以下說明 %APP_NAME%
的決定方式:
如果有 OAuth 品牌名稱,電子郵件範本中的
%APP_NAME%
會是 OAuth 品牌名稱 (與 2022 年 12 月前的行為相同)。如果「不」提供 OAuth 品牌名稱,系統會以下列方式判定電子郵件範本中的
%APP_NAME%
:如果是網頁應用程式,
%APP_NAME%
會是預設的 Firebase 託管網站名稱 (.firebaseapp.com
和.web.app
之前的值,通常是 Firebase 專案 ID)。行動應用程式:
如果要求中有 Android 套件名稱或 iOS 軟體包 ID,則
%APP_NAME%
會是 Play 商店或 App Store 中使用的應用程式名稱 (分別如此)。否則,
%APP_NAME%
會是預設的 Firebase 託管網站名稱 (位於.firebaseapp.com
和.web.app
之前的值,通常是 Firebase 專案 ID)。
請注意,如果查詢預設 Firebase 託管網站名稱失敗,則最終備用方案是使用 Firebase 專案 ID 做為
%APP_NAME%
。
Cloud Functions
Cloud Functions 執行階段支援
如何升級至最新受支援的 Node.js 版本?
- 請確認您採用 Blaze 定價方案。
- 請確認您使用的是最新版的 Firebase CLI。
- 更新函式
package.json
中的engines
欄位。 - 視需要使用 Firebase 本機模擬器套件測試變更。
- 重新部署所有函式。
如何確保已將函式部署至特定的 Node.js 執行階段?
在 Firebase 控制台中,前往函式資訊主頁,選取函式,然後在「Additional details」(其他詳細資料) 下方查看函式的語言。
我使用 Firebase Extensions,Cloud Functions 執行階段更新是否會影響我?
是,由於擴充功能使用 Cloud Functions,擴充功能執行階段需要與 Cloud Functions 同步更新。
建議您定期將專案中安裝的每個擴充功能更新至最新版本。您可以透過 Firebase 主控台或 Firebase CLI 升級專案的擴充功能。
雲端通訊
雲端通訊:通知編輯器和雲端通訊有何不同?
Firebase 雲端通訊可透過用戶端 SDK、HTTP 和 XMPP 伺服器通訊協定,提供完整的訊息傳遞功能。對於有較複雜的訊息傳遞要求,FCM 會是理想選擇。
通知編輯器是輕量的無伺服器訊息傳遞解決方案,以 Firebase 雲端通訊為基礎。通知編輯器提供容易上手的圖形控制台和更少的程式設計要求,使用者能輕鬆傳送訊息來再次互動並留住使用者、促進應用程式業務拓展,以及支援行銷廣告活動。
功能 | 通知編輯器 | 雲端通訊 | |
---|---|---|---|
目標 | 單一裝置 | ||
訂閱主題的客戶 (例如天氣) | |||
預先定義使用者區隔 (應用程式、版本、語言) 中的用戶端 | |||
指定 Analytics (分析) 目標對像中的客戶 | |||
裝置群組中的用戶端 | |||
從用戶端到伺服器的上游 | |||
郵件類型 | 通知最高可達 2 KB | ||
最多 4KB 的資料訊息 | |||
廣告放送 | 立即 | ||
未來用戶端裝置 (當地時間) | |||
數據分析 | 內建通知分析功能與漏斗分析 |
雲端通訊:Apple 宣布即將淘汰 APN 的舊版二進位通訊協定。我需要採取任何行動嗎?
不可以。Firebase 雲端通訊在 2017 年已改用以 HTTP/2 為基礎的 APN 通訊協定。如果您使用 FCM 傳送通知到 iOS 裝置,則無需採取任何動作。
雲端通訊:是否必須改用其他 Firebase 服務,才能使用 FCM?
您可以將 Firebase 雲端通訊當做獨立元件使用,做法與使用 GCM 的方法相同,差別只在於無需使用其他 Firebase 服務。
雲端通訊:我目前已是 Google 雲端通訊 (GCM) 開發人員。我應該改用 Firebase 雲端通訊嗎?
FCM 是 Firebase 品牌旗下的新版 GCM,此版本沿用了 GCM 的核心基礎架構,而其中的新 SDK 可讓雲端通訊開發變得更輕鬆。
升級至 FCM SDK 的好處包括:
- 簡化用戶端開發作業。您不必再編寫自己的註冊或訂閱項目重試邏輯。
- 立即可用的通知解決方案。您可以使用「通知編輯器」,這是具備網路控制台的無伺服器通知解決方案,讓任何人都能根據 Google Analytics (分析) 的深入分析資訊,向特定目標對象傳送通知。
雲端通訊:為什麼目標裝置明顯無法接收訊息?
如果裝置似乎無法成功接收訊息,請先檢查下列兩個可能原因:
通知訊息的前景訊息處理。用戶端應用程式需要新增訊息處理邏輯,以便在應用程式於裝置前景運作時處理通知訊息。詳情請參閱 iOS 和 Android 適用的詳細資料。
網路防火牆限制。如果貴機構的防火牆會限制進出網際網路的流量,您必須將防火牆設為允許 FCM 連線,Firebase 雲端通訊用戶端應用程式才能接收訊息。要開啟的通訊埠如下:
- 5228
- 5229
- 5230
FCM 通常會使用 5228,但有時會使用 5229 和 5230。 FCM 不提供特定 IP,因此,您應該允許防火牆接受 Google ASN (15169 級) IP 區塊中列出的所有 IP 位址的傳出連線。
雲端通訊:我已在 Android 應用程式中實作 onMessageReceived
,但是並未被呼叫。
當應用程式在背景執行時,
通知訊息會顯示在系統匣中,且不會呼叫 onMessageReceived
。針對含有資料酬載的通知訊息,通知訊息會顯示在系統匣中,而當使用者輕觸通知時,也可從啟動的意圖中擷取包含在通知訊息中的資料。
詳情請參閱「接收及處理訊息」一文。
通知撰寫者:通知編輯器和雲端通訊有何不同?
通知編輯器是輕量的無伺服器訊息傳遞解決方案,以 Firebase 雲端通訊為基礎。通知編輯器提供容易上手的圖形控制台和更少的程式設計要求,使用者能輕鬆傳送訊息來再次互動並留住使用者、促進應用程式業務拓展,以及支援行銷廣告活動。
Firebase 雲端通訊可透過用戶端 SDK、HTTP 和 XMPP 伺服器通訊協定,提供完整的訊息傳遞功能。對於有較複雜的訊息傳遞要求,FCM 會是理想選擇。
以下比較 Firebase 雲端通訊與通知編輯器提供的訊息功能:
功能 | 通知編輯器 | 雲端通訊 | |
---|---|---|---|
目標 | 單一裝置 | ||
訂閱主題的客戶 (例如天氣) | |||
預先定義使用者區隔 (應用程式、版本、語言) 中的用戶端 | |||
指定 Analytics (分析) 目標對像中的客戶 | |||
裝置群組中的用戶端 | |||
從用戶端到伺服器的上游 | |||
郵件類型 | 通知最高可達 2 KB | ||
最多 4KB 的資料訊息 | |||
廣告放送 | 立即 | ||
未來用戶端裝置 (當地時間) | |||
數據分析 | 內建通知分析功能與漏斗分析 |
通知撰寫者:我已經是 Google 雲端通訊 (GCM) 開發人員,想要使用通知編輯器。 該怎麼做?
通知編輯器是立即可用的解決方案,可讓任何人根據 Google Analytics (分析) 的深入分析,傳送通知並鎖定特定目標對象。此外,通知編輯器提供每則訊息的程序分析,方便您評估通知成效。
如果您目前是 GCM 開發人員,則必須先從 GCM SDK 升級至 FCM SDK,才能使用通知編輯器。請參閱遷移 Android 和 iOS 應用程式的指南。
FCM 功能已於 2023 年 6 月淘汰
哪些 FCM API 已於 2023 年 6 月 20 日淘汰?如果我使用這些 API,該怎麼辦?
以下 API/SDK 會受到這項淘汰措施的影響:
伺服器 API
API 名稱 | API 端點 | 對使用者的影響 | 敬請採取行動 |
---|---|---|---|
舊版 HTTP 通訊協定 | https://fcm.googleapis.com/fcm/send | 2024 年 6 月 21 日之後,對端點發出的要求會失敗。 | 遷移至 HTTP v1 API。 |
舊版 XMPP 通訊協定 | fcm-注意.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 存取權杖。 | |
Device Group Management API | https://fcm.googleapis.com/fcm/notification | 2024 年 6 月 21 日之後,端點會繼續運作,但將不支援使用靜態伺服器金鑰進行驗證。 | 使用由服務帳戶衍生的 OAuth 2.0 存取權杖。 |
透過 XMPP 傳遞上游訊息 | fcm-注意.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/2 進行多工處理的標準 HTTP v1 API 傳送方法。 |
Firebase Admin SDK API
API 名稱 | API 語言 | 對使用者的影響 | 敬請採取行動 |
---|---|---|---|
sendToDevice()
|
Node.js | 這個 API 會呼叫舊版 HTTP Send API,因此自 2024 年 6 月 21 日起將停止運作。 | 請使用 send() 方法。 |
sendToDeviceGroup()
|
Node.js | 這個 API 會呼叫舊版 HTTP Send API,因此自 2024 年 6 月 21 日起將停止運作。 | 請使用 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,因此產生的並行 HTTP 連線可能會比舊 API 更多。 |
用戶端 SDK
SDK 版本 | 對使用者的影響 | 敬請採取行動 |
---|---|---|
GCM SDK (已於 2018 年淘汰) | 2024 年 6 月 21 日起,使用 GCM SDK 的應用程式將無法註冊權杖,也無法接收 FCM 的訊息。 | 將 Android SDK 升級至最新版 Firebase SDK (如果尚未升級)。 |
JS SDK 7.0.0 以下版本 (2019 年 7.0.0 版進行破壞性變更) | 2024 年 6 月 21 日起,使用舊版 JS SDK 的網頁應用程式將無法註冊權杖。 | 將 Firebase Web SDK 升級至最新版本。 |
我會在 2024 年 6 月前看到服務降級嗎?
不可以。請在 12 個月內 (2023 年 6 月 20 日至 6 月 21 日) 從舊版 API 遷移至新的 API,而且服務完全不會降級。強烈建議您盡早規劃遷移作業,以免 API 在 2024 年 6 月停用而受到影響。
2024 年 6 月之後,您在使用上述 API/SDK 時,可能會發現錯誤數量增加,或功能不足 (詳情請參閱下一個常見問題)。
已淘汰的 API 何時會停用?要在何時停用?
FCM 會在 2024 年 7 月 22 日左右,逐步停用已淘汰的 API。在此日期之後,已淘汰的服務必須進入「閃爍」程序。屆時,增加的要求數量將會傳回錯誤回應。在逐步調降期間,您可能會預期以下行為和錯誤回應頻率會隨時間增加:
類別 | 預期程序 |
---|---|
舊版 HTTP 通訊協定 | 要求遭拒,並傳回 HTTP 代碼 301。 |
舊版 XMPP 通訊協定 | 要求遭拒,並傳回錯誤代碼 302。 |
FCM 上游 | FCM 後端捨棄訊息,但沒有任何通知。 |
批次傳送 API | 要求遭拒,並傳回錯誤代碼 501 和錯誤訊息「API 已淘汰」。 |
GCM SDK - 註冊權杖 | 要求遭拒,並傳回 HTTP 代碼 301。 |
GCM SDK - 傳送訊息 | 要求遭拒,並傳回錯誤代碼 400 和錯誤訊息「V3 權杖已淘汰」。 |
JS SDK 7.0.0 以下版本 | 要求遭拒,並傳回 HTTP 代碼 501。 |
使用伺服器金鑰存取執行個體 ID 和裝置群組管理 API | 要求遭拒,並傳回 HTTP 代碼 401。 |
如果無法在逐步關閉前完成從已淘汰的 FCM 服務遷移,您可以申請擴充功能。如果您獲得延期,在擴充功能到期之前,您不會受到漸進式影響的影響。擴充功能到期後,流量可能會迅速下降。
OAuth 2.0 權杖和伺服器金鑰有何差異?
OAuth 2.0 權杖是衍生自服務帳戶的短期權杖。是 Google 的標準驗證模型,比靜態伺服器金鑰更安全。
請參閱「使用憑證來擷取存取權杖」一文,瞭解如何使用 Google 驗證程式庫取得權杖。
請注意,如果您使用 OAuth 2.0 權杖向不同端點發出要求,要求標頭會有所不同。
- HTTP v1 API:
Authorization: Bearer $oauth_token
- Instance ID server API 和 Device group management API:
Authorization: Bearer $oauth_token
access_token_auth: true
我可以一次將要求遷移至新的 API 嗎?
建議您慢慢增加新 API 的流量。如果您預期每分鐘傳送超過 600,000 則訊息,請 聯絡 Firebase 支援團隊,瞭解如何提高配額或取得分散流量的建議。
當我傳送訊息至主題/裝置群組時,HTTP v1 API 和舊版 API 有何不同?
主題:使用第 1 版 API 時,您不需要為主題目標加上「/topics/」前置字串。
裝置群組:您可以在 HTTP v1 API 中,使用群組權杖做為權杖目標。不過,HTTP v1 API 不會在回應中傳回成功/失敗次數。建議您使用 FCM 主題,或自行管理裝置群組。
HTTP v1 API 是否支援在單一要求中傳送訊息至多個權杖?
不可以。HTTP v1 API 不支援在舊版 HTTP API 中稱為「多點傳播」的功能,因為前者較適合擴充性。
對於端對端延遲時間至關重要,或擴散總量較小 (少於 100 萬) 的情況下,Google 建議您使用 HTTP v1 API 傳送多個不同的要求。採用 HTTP/2 的 HTTP v1 API 對 99.9% 的多點傳送要求 (傳送小於 100 個權杖) 執行的方式很類似。針對異常用途 (傳送 1,000 個符記),總處理量最高達三分之一,因此必須額外進行並行,才能針對這個非典型用途進行最佳化。相較於舊版的多點傳播,使用者可透過 HTTP v1 API 感受更可靠性和可用性。
對於處理量和輸出頻寬的優先考量,或擴散總大小大於 100 萬時,Google 建議您使用主題訊息功能。雖然主題訊息需要一次性動作來訂閱主題的收件者,但其可提供高達 每個專案 10,000 QPS 的 QPS 頻率,但主題大小沒有上限。
哪些版本的 Firebase Admin SDK 有新版 API?
平台 | Firebase Admin SDK 版本 |
---|---|
Node.js | >=11.7.0 |
Python | >=6.2.0 |
Java | >=9.2.0 |
Go | >=4.12.0 |
.NET | >=2.4.0 |
批次傳送 API 和 HTTP v1 API 有何不同?
FCM 批次傳送 API 採用與 HTTP v1 API 相同的訊息格式和驗證機制。但它使用不同的端點。如果想要提高效率,建議使用 HTTP/2,透過相同的 HTTP 連線將多個要求傳送至 HTTP v1 API。
如果無法存取自己的專案,該怎麼辦?
如需協助,請與 Google Cloud 支援團隊聯絡。
新專案是否可以啟用舊版 Cloud Messaging API?
不可以。自 2024 年 5 月 20 日起,新專案將無法再啟用舊版 API。
FCM 配額與限制
我需要在 2 分鐘內通知大量客戶,
很抱歉,我們無法支援這個用途。流量必須分散在 5 分鐘以上。
我的應用程式會將活動通知使用者。訊息必須立即傳送,才能支援我的商業模式。可以取得更多配額嗎?
很抱歉,我們無法核准提高配額。流量必須分散在 5 分鐘以上。
我的訊息與已排定的活動有關,而我需要在時段的最上方傳送所有流量。
建議您在活動開始前至少 5 分鐘開始傳送通知。
配額要求需要多久時間才能完成?
這取決於您使用 FCM 的情形。但無論如何,您應該會在幾個工作天內收到回覆。在某些情況下,使用 FCM 和各種情況下可能會產生一些往返時間,導致處理速度變長。如果達成所有要求,多數要求會在 2 週內處理完畢。
我要如何監控配額的用量?
請參閱 Google Cloud 指南,瞭解如何繪製配額指標圖表及監控配額指標。
那麼我 / 公司要處理這些情形並不容易。我能否取得豁免或更多配額,以免收到 429 錯誤數?
我們瞭解配額限制可能不容易,但配額是維持服務可靠性的關鍵,因此我們無法提供豁免。
我可以為臨時活動取得更多配額嗎?
您可以申請提高配額,以支援持續時間最長 1 個月的活動。請在活動開始前至少 1 個月提出申請,並清楚說明活動開始和結束的時間,FCM 將盡力履行要求 (不保證能提高上限)。系統會在活動結束日期後還原這些增加的配額。
我目前的配額有可能會變動嗎?
雖然 Google 不會迅速做到這點,但為保護系統的完整性,我們可能會視需要調整配額。如果情況允許,Google 會盡可能提前通知您。
Cloud Storage for Firebase
Cloud Storage for Firebase:為什麼無法使用 Cloud Storage for Firebase?
Cloud Storage for Firebase 會在 App Engine 免費方案中建立預設值區。無須輸入信用卡或啟用 Cloud Billing 帳戶,就能快速開始使用 Firebase 和 Cloud Storage for Firebase。另外,您也能在 Firebase 和 Google Cloud 專案之間輕鬆共用資料。
然而,在兩種已知情況中,無法建立這個值區,您也無法使用 Cloud Storage for Firebase:
- 從 Google Cloud 匯入的專案,具有 App Engine 主從 Datastore 應用程式。
-
從 Google Cloud 匯入的專案,專案中已加上網域前置字元。例如:
domain.com:project-1234
。
這些問題目前沒有解決方法。建議您在 Firebase 主控台中建立新專案,並在該專案中啟用 Cloud Storage for Firebase。
Cloud Storage for Firebase:使用 Cloud Storage for Firebase API 時,為什麼我會收到與服務帳戶權限相關的錯誤代碼 412 回應,以及服務帳戶作業失敗的回應?
您之所以會收到 412 組錯誤代碼,可能是因為專案未啟用 Cloud Storage for Firebase API,或是必要的服務帳戶缺少必要權限。
請參閱相關的常見問題。
Cloud Storage for Firebase:在 Spark 方案專案中,我可以儲存可執行的檔案嗎?
針對免付費 (Spark) 方案專案,Firebase 會透過 Cloud Storage for Firebase 和 Firebase 託管,封鎖及託管某些適用於 Windows、Android 和 Apple 的可執行檔案類型。這項政策旨在防止使用者濫用 YouTube 平台。
2023 年 9 月 28 日當天或之後建立的所有 Spark 專案,均無法放送、代管及上傳不允許的檔案。若現有 Spark 專案在上述日期前上傳的檔案,則仍可上傳及代管。
這項限制適用於 Spark 方案專案。即付即用 (Blaze) 方案的專案不受影響。
Firebase 託管和 Cloud Storage for Firebase 不能代管下列檔案類型:
- 具有
.exe
、.dll
和.bat
副檔名的 Windows 檔案 - 副檔名為
.apk
的 Android 檔案 - 副檔名為「
.ipa
」的 Apple 平台檔案
我需要做些什麼?
2023 年 9 月 28 日後,如果仍要代管以下檔案類型:
- 託管:請先升級至 Blaze 方案,才能透過
firebase deploy
指令將這些檔案類型部署至 Firebase 託管。 - 儲存空間:升級至 Blaze 方案,即可使用 GCS CLI、Firebase 控制台或 Google Cloud 控制台,將這些檔案類型上傳至所選值區。
使用 Firebase 工具管理 Firebase 託管和 Cloud Storage 資源。
- 如要管理 Firebase 託管資源,請根據這份指南,透過 Firebase 控制台刪除版本。
- 如要管理 Cloud Storage 中的資源,請前往專案中的 Storage 產品頁面。
- 在「檔案」分頁中,在資料夾階層中找出禁止刪除的檔案,然後在面板左側的檔案名稱旁勾選對應的核取方塊。
- 按一下「刪除」,並確認檔案已刪除。
請參閱說明文件,進一步瞭解如何 透過 Firebase 工具託管資源,以及透過用戶端程式庫使用 Cloud Storage for Firebase 值區。
Cloud Storage for Firebase:為什麼上傳和下載作業量意外增加?
先前,系統無法正確計算向 Cloud Storage for Firebase API 下載和上傳要求。我們已自 2023 年 9 月 15 日起採取措施來修正這個問題。
如為 Blaze 使用者,上傳和下載作業會開始計入每月帳單。Spark 使用者的用量會計入您的每月免費配額。
建議您監控「用量」頁面,找出可能計入配額上限的部分。
Cloud Storage for Firebase:為什麼我會看到與使用 Cloud Storage for Firebase 的 Firebase 專案相關聯的新的服務帳戶 ID?
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 控制台的「服務帳戶」分頁中,查看與專案相關聯的所有服務帳戶。
新增服務帳戶
如果您先前曾移除過服務帳戶,或是專案中沒有服務帳戶,可以執行下列任一操作來新增帳戶。
- (建議) 自動:使用 AddFirebase REST 端點將值區重新匯入 Firebase。您只需要呼叫這個端點一次,而非針對每個連結值區呼叫一次。
-
手動:請按照建立及管理服務帳戶中的步驟進行。
按照該指南的說明,新增具備 IAM 角色
Cloud Storage for Firebase Service Agent
和服務帳戶名稱service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com
的服務帳戶。
移除新的服務帳戶
我們強烈建議您移除服務帳戶,因為這可能會導致應用程式無法存取您 Cloud Storage 值區。如要將服務帳戶從專案中移除,請按照停用服務帳戶中的指示操作。
Crashlytics
歡迎前往 Crashlytics 疑難排解與常見問題頁面,取得實用提示和更多常見問題解答。
Dynamic Links
Dynamic Links:Firebase 未來的 Dynamic Links 預計為何?
請參閱動態連結常見問題。
動態連結:為什麼 Android 應用程式會存取每個 Dynamic Links 兩次?
getInvitation
API 會清除已儲存的動態連結,避免重複存取。請務必在每個深層連結活動中,將 autoLaunchDeepLink
參數設為 false
,以便呼叫這個 API。這樣一來,如果活動在主要活動外觸發時,才能清除該 API。
Firebase 本機模擬器套件
為什麼模擬器套件記錄會顯示開頭為「不建議在單一專案模式下使用多個專案 ID」的錯誤?
這則訊息代表模擬器套件偵測到可能使用不同專案 ID 執行特定產品模擬器。這可能表示設定錯誤,而且當您嘗試透過程式碼與模擬器互動時,就可能發生問題。如果專案 ID 不相符,通常表示有資料遺漏,因為模擬器中儲存的資料會對應至 projectID,而互通性則取決於相符的專案 ID。
這是開發人員容易造成混淆的常見原因,因此除非您在 firebase.json
設定檔中另行指定,否則本機模擬器套件現在一律只能以單一專案 ID 執行。如果模擬器偵測到多個專案 ID,就會記錄警告,並可能會擲回嚴重錯誤。
請檢查專案 ID 宣告是否與以下項目不一致:
-
在指令列中設定的預設專案。根據預設,系統會在啟動時使用
firebase init
或firebase use
所選專案內的專案 ID。如要查看專案清單 (並瞭解已選取哪個專案),請使用firebase projects:list
。 -
單元測試。通常在呼叫規則單位測試程式庫方法
initializeTestEnvironment
或initializeTestApp
時,會指定專案 ID。其他測試程式碼可以透過initializeApp(config)
進行初始化。 -
指令列
--project
旗標。傳遞 Firebase CLI--project
旗標會覆寫預設專案。您必須確保標記值與單元測試和應用程式初始化中的專案 ID 相符。
特定平台需檢查的地方:
Web | 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 }, ... } }
託管
託管:在 Spark 方案專案中,我可以儲存可執行的檔案嗎?
針對免付費 (Spark) 方案專案,Firebase 會透過 Cloud Storage for Firebase 和 Firebase 託管,封鎖及託管某些適用於 Windows、Android 和 Apple 的可執行檔案類型。這項政策旨在防止使用者濫用 YouTube 平台。
2023 年 9 月 28 日當天或之後建立的所有 Spark 專案,均無法放送、代管及上傳不允許的檔案。若現有 Spark 專案在上述日期前上傳的檔案,則仍可上傳及代管。
這項限制適用於 Spark 方案專案。即付即用 (Blaze) 方案的專案不受影響。
Firebase 託管和 Cloud Storage for Firebase 不能代管下列檔案類型:
- 具有
.exe
、.dll
和.bat
副檔名的 Windows 檔案 - 副檔名為
.apk
的 Android 檔案 - 副檔名為「
.ipa
」的 Apple 平台檔案
我需要做些什麼?
2023 年 9 月 28 日後,如果仍要代管以下檔案類型:
- 託管:請先升級至 Blaze 方案,才能透過
firebase deploy
指令將這些檔案類型部署至 Firebase 託管。 - 儲存空間:升級至 Blaze 方案,即可使用 GCS CLI、Firebase 控制台或 Google Cloud 控制台,將這些檔案類型上傳至所選值區。
使用 Firebase 工具管理 Firebase 託管和 Cloud Storage 資源。
- 如要管理 Firebase 託管資源,請根據這份指南,透過 Firebase 控制台刪除版本。
- 如要管理 Cloud Storage 中的資源,請前往專案中的 Storage 產品頁面。
- 在「檔案」分頁中,在資料夾階層中找出禁止刪除的檔案,然後在面板左側的檔案名稱旁勾選對應的核取方塊。
- 按一下「刪除」,並確認檔案已刪除。
請參閱說明文件,進一步瞭解如何 透過 Firebase 工具託管資源,以及透過用戶端程式庫使用 Cloud Storage for Firebase 值區。
代管:為什麼 Firebase 控制台中的「託管」版本記錄表格顯示的檔案數量比本機專案實際數量多?
Firebase 會自動新增額外檔案,內含「託管」網站的中繼資料,這些檔案會計入該版本的總檔案數。
託管:我可以部署至 Firebase 託管的最大檔案大小為何?
託管作業的個別檔案的大小上限為 2 GB。
建議您使用 Cloud Storage 儲存大型檔案,針對個別物件提供 TB 位元組範圍的大小上限。
託管:每項 Firebase 專案可以建立幾個託管網站?
Firebase 代管多網站功能支援每項專案最多 36 個網站。
Performance Monitoring
歡迎前往 Performance Monitoring 疑難排解與常見問題頁面取得實用提示和常見問題解答。
Performance Monitoring:我可以建立幾個自訂網址模式?
每個應用程式最多可建立 400 個自訂網址模式,每個網域最多可建立 100 個自訂網址模式。
Performance Monitoring:為什麼我無法即時顯示成效資料?
如要查看即時效能資料,請確認您的應用程式使用與即時資料處理相容的 Performance Monitoring SDK 版本。
- iOS - 7.3.0 以上版本
- tvOS - 8.9.0 以上版本
- Android - v19.0.10 以上版本 (或 Firebase Android BoM v26.1.0 以上版本)
- 網頁版 - 7.14.0 以上版本
請注意,我們建議您一律使用最新版 SDK,但上述任何版本都能讓 Performance Monitoring 以近乎即時的方式處理您的資料。
即時資料庫
即時資料庫:為什麼即時資料庫回報的頻寬在 2016 年 9 月至 2017 年 3 月之間低於平均值?
計算頻寬時,我們通常會將 SSL 加密負擔 (以 OSI 模型的第 5 層) 為基礎。不過,我們在 2016 年 9 月推出一項錯誤,該錯誤會導致頻寬回報功能忽略加密負擔。這可能會導致您的帳戶在幾個月前因人為增加的頻寬和帳單費用偏低。
我們在 2017 年 3 月下旬發布了這項錯誤修正,恢復了頻寬回報和計費功能。
即時資料庫:即時資料庫的資源調度限制為何?
每個即時資料庫執行個體都設有每秒寫入作業數限制。針對小型寫入作業,這個上限約為每秒 1, 000 次寫入作業。如果您即將達到這個上限, 使用多路徑更新進行批次作業可協助達成更高的處理量。
此外,每個資料庫執行個體均設有同時資料庫連線數量上限。預設上限夠大,適用於大多數應用程式。如果您建構的應用程式需要進行額外規模調整,可能需要將應用程式分割至多個資料庫執行個體,以增加規模。也可以考慮使用 Cloud Firestore 做為替代資料庫。
即時資料庫:如果超過即時資料庫的用量限制,該怎麼辦?
如果您在 Firebase 控制台中收到電子郵件快訊或通知,指出您已超過即時資料庫的用量限制,可以依據已超過的用量限制解決問題。如要查看即時資料庫用量,請前往 Firebase 控制台的即時資料庫「用量」資訊主頁。
如果超過下載上限,您可以升級 Firebase 定價方案,或等到下一個帳單週期開始時,等待下載限制重設。如要減少下載次數,請嘗試下列步驟:
- 新增查詢,限制監聽作業傳回的資料。
- 檢查未建立索引的查詢。
- 使用只會下載資料更新的事件監聽器,例如
on()
而非once()
。 - 使用安全性規則封鎖未經授權的下載作業。
如果儲存空間用量超出上限,請升級定價方案,以免服務中斷。如要減少資料庫中的資料,請嘗試下列步驟:
- 執行定期清理工作。
- 請減少資料庫中所有的重複資料。
請注意,資料刪除作業可能需要一段時間才會反映在儲存空間配額中。
如果您已超過資料庫連線數量限制,請升級方案,以免服務中斷。如要同時管理連至資料庫的連線,如果使用者不需要即時連線,請嘗試透過 REST API 透過使用者連線。
遠端設定
遠端設定:為什麼擷取的值沒有改變應用程式的行為和外觀?
除非您使用 fetchAndActivate()
擷取值,否則值會儲存在本機上,但不會啟用。如要啟用擷取的值,讓這些值生效,請呼叫 activate
。這項設計可讓您控制應用程式行為和外觀的變更時間,因為您可以選擇呼叫 activate
的時間。呼叫 activate
後,應用程式原始碼會決定何時使用更新的參數值。
例如,您可以擷取值,然後在使用者下次啟動應用程式時啟用這些值,這樣就不用等到應用程式等待服務擷取到的值時,延遲啟動應用程式。在應用程式使用更新後的參數值時,應用程式的行為和外觀會有所變更。
如要進一步瞭解 Remote Config API 和使用模式,請參閱 Remote Config API 總覽。
遠端設定:我在開發應用程式時發出了大量擷取要求。為什麼我的應用程式在傳送擷取要求時,不一定會從服務取得最新的值?
在應用程式開發期間,建議您經常擷取並啟用設定 (每小時多次),以便在開發及測試應用程式時快速疊代。如要針對最多有 10 名開發人員的專案進行快速疊代作業,您可以在應用程式中暫時設定最低擷取間隔 (setMinimumFetchIntervalInSeconds
) 的 FirebaseRemoteConfigSettings
物件。
遠端設定:應用程式傳送擷取要求後,遠端設定服務會在多快時間內傳回擷取的值?
裝置通常會在一秒內接收擷取的值,且通常在毫秒內收到擷取的值。遠端設定服務會在幾毫秒內處理擷取要求,但完成擷取要求所需的時間取決於裝置的網路速度和裝置使用的網路連線延遲時間。
如果您的目標是讓擷取的值盡快在應用程式中生效,但不造成令人困擾的使用者體驗,建議您在應用程式完成全螢幕重新整理時,對 fetchAndActivate
新增呼叫。
Test Lab
歡迎前往 Test Lab 疑難排解頁面,取得實用提示和常見問題解答。
Firebase 使用者區隔儲存空間
什麼是 Firebase 使用者區隔儲存空間?
Firebase User Segmentation Storage 會儲存 Firebase 安裝 ID、相關屬性和區隔,以及您建立的目標對象名單,以便將指定目標資訊提供給其他使用這些 ID 的 Firebase 服務,例如 Crashlytics、FCM、遠端設定個人化等。