還有其他挑戰或是沒有看到下方列出的問題嗎?請回報錯誤或提出功能要求,並加入 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
,Value
為 enabled
。
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,請手動新增標籤。具體來說,如果Key
為firebase
,且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。單一專案最多可建立 30 個用戶端 ID。
從使用者的角度來看,請確保單一 Firebase 專案中的所有 Firebase 應用程式都是同一個應用程式的平台變化版本。舉例來說,如果您開發的空白標籤應用程式,每個獨立標籤的應用程式都應該有各自的 Firebase 專案,但同一標籤的 Apple 和 Android 版本可以在同一個專案中。詳情請參閱設定 Firebase 專案的一般最佳做法一文。
在極少數情況下,如果專案需要超過 30 個應用程式,您可以要求提高應用程式數量上限。您的專案必須採用 Blaze 定價方案,才能提出要求。前往 Google Cloud 控制台提出要求並接受評估。如要進一步瞭解配額管理,請參閱 Google Cloud 說明文件中的這篇文章。
如果將專案標記為「正式環境」,會發生什麼情況?
在 Firebase 控制台中,您可以將 Firebase 專案的環境類型標記為「實際工作環境」或「未指定」(非實際工作環境)。
將專案標記為環境類型不會影響 Firebase 專案的運作方式或功能。不過,在生命週期內,標記功能有助於您和團隊成員管理各種 Firebase 專案。
如果您將專案標記為正式環境,我們會在 Firebase 控制台中為專案新增色彩鮮明的 Prod 標記,提醒您留意任何變更,都可能會影響相關的正式版應用程式。我們日後可能會為標記為正式環境的 Firebase 專案新增更多功能及保護措施。
如要變更 Firebase 專案的環境類型,請前往settings「專案設定」 >「一般」,然後在「環境」下方的「您的專案」資訊卡中,按一下 edit 來變更環境類型。
哪裡可以找到 Firebase 應用程式的應用程式 ID?
在 Firebase 控制台中,前往 settings「專案設定」。向下捲動至「Your apps」資訊卡,然後按一下所需的 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 控制台提供各式各樣的工具,方便您在身分與存取權管理頁面中為專案成員指派角色。在 Cloud 控制台中,您也可以建立及管理自訂角色,以及將專案存取權授予服務帳戶。
請注意,在 Google Cloud 控制台中,專案成員稱為「主體」。
如果您的專案擁有者無法執行擁有者的工作 (例如離職使用者),且專案並非透過 Google Cloud 機構管理 (請參閱下一段),您可以與 Firebase 支援團隊聯絡,將臨時擁有者指派給您。
請注意,如果 Firebase 專案隸屬於 Google Cloud 機構,則可能沒有擁有者。如果你找不到 Firebase 專案的擁有者,請與 Google Cloud 機構的管理員聯絡,要求對方指派專案的擁有者。
如何找出 Firebase 專案的擁有者?
您可以在下列位置查看專案成員及其角色:
- 如果您可以存取 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 專案的連結。 點選電子郵件中的連結後,應該會在 Firebase 控制台開啟專案。
如果您無法透過連結開啟專案,請確認您是使用收到專案電子郵件的 Google 帳戶登入 Firebase。您可以透過控制台右上角的帳戶顯示圖片,登入及登出 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 IAM 說明文件。
Firebase 支援擁有者、編輯者和檢視者的基本 (基本) 角色:
- 專案擁有者可以將其他成員新增至專案、設定整合 (將專案連結至 BigQuery 或 Slack 等服務),而且具有專案的完整編輯權限。
- 專案「編輯者」具有專案的完整編輯權限。
- 專案「檢視者」只具備專案的讀取權限,請注意,Firebase 控制台目前無法向專案檢視者隱藏/停用編輯 UI 控制項,但指派「檢視者」角色的專案成員將無法執行這些操作。
Firebase 也支援:
- Firebase 預先定義角色 - 收錄的 Firebase 專屬角色,相較於「擁有者」、「編輯者」和「檢視者」的基本角色,這些角色提供更精確的存取權控管設定。
- 自訂角色:由您建立的完整自訂 IAM 角色,可根據貴機構的特定需求建立一組權限。
定價
哪些產品會付費?哪些是免付費項目?
Firebase 的付費基礎架構產品包括即時資料庫、Cloud Storage for Firebase、Cloud Functions、託管、Test Lab 和電話驗證。所有這些功能均提供免付費方案。
Firebase 也提供多項免付費產品,包括數據分析、雲端通訊、通知編輯器、遠端設定、應用程式索引、Dynamic Links 與當機回報。使用這些產品時,必須遵守所有方案 (包括免費 Spark 方案) 中的產品流量控管政策,例如配額、公平存取和其他服務保護措施。此外,除了電話驗證之外,其他所有驗證功能都不需額外付費。
Firebase 是否為付費產品提供免費試用抵免額?
Firebase 付費服務可在 Google Cloud 免費試用期中使用。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 方案遷移至 Google Cloud。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 萬次叫用
- 每月 40 萬 GB-秒
- 每月 20 萬次 CPU 使用時間
- 每月 5 GB 網路輸出流量
手機驗證的 Blaze 方案免費用量計算方式為每個月。
針對 Test Lab,Blaze 方案的免費用量有下列限制:
- 每天 30 個實體裝置分鐘數
- 每天 60 個虛擬裝置分鐘數
從 Spark 變更為 Blaze 方案後,免付費用量配額是否會重設?
Spark 方案的免費用量包含在 Blaze 方案中。移至 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 世界級的基礎架構式服務 (Infrastructure-as-a-Service) 和 API,並遵循標準 Google Cloud 定價。您也可以將 Google Cloud 中的資料直接匯出至 BigQuery 進行分析。詳情請參閱將 BigQuery 與 Firebase 建立連結。
相較於其他不在相同位置的雲端服務,使用 Google Cloud 與 Firebase 相輔相成,不僅能提升安全性、降低延遲,還能節省許多時間。詳情請參閱 Google Cloud 網站。
如果我在 Google Cloud 控制台中新增或移除專案的帳單帳戶,我的 Firebase 專案會受到什麼影響?
如果 Cloud Billing 帳戶已新增至 Google Cloud 控制台的專案,只要該專案目前採用 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 定價方案的條款向您收取費用。請參閱配額與限制一文。
可以獲得 Google Cloud $300 美元的抵免額嗎?
可以,您可以在 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 美元,計算每項擴充功能所需的 Firebase 資源費用,即便擴充功能未使用也一樣)。
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 (分析) 以外的任何使用/診斷資訊嗎?
是,目前這項功能僅適用於 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「Project Settings」中選取「Integrations」。
- 在「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 管理員角色中包含的
firebase.links.create
權限。 - 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 專案:
在build.gradle
檔案中加入 Google Mobile Ads SDK 的依附元件:
implementation 'com.google.android.gms:play-services-ads:23.0.0'
- 對於 C++ 專案和 Unity 專案:請按照個別說明文件中的指示操作。
數據分析
數據分析:為什麼 Google Analytics (分析) 是使用 Firebase 產品的好處?
Google Analytics (分析) 是一項免費且無限制的數據分析解決方案,可搭配 Firebase 功能使用,藉此取得強大的深入分析結果。這樣一來,您就能查看 Crashlytics 中的事件記錄、FCM 中的通知成效、Dynamic Links 的深層連結成效,以及 Google Play 中的應用程式內購資料。更支援遠端設定、遠端設定個人化等功能的進階指定目標對象。
Google Analytics (分析) 是 Firebase 控制台中的情報層,提供更多可做為行動依據的洞察資料,藉此說明如何開發優質應用程式、擴大使用者數量及提高收益。
如要開始使用,請參閱說明文件。
數據分析:如何控管與其他 Firebase 產品共用 Analytics (分析) 資料的方式?
根據預設,系統會使用您的 Google Analytics (分析) 資料改善其他 Firebase 和 Google 功能。你隨時可以在專案設定中控管 Google Analytics (分析) 資料的共用方式。進一步瞭解資料共用設定。
Analytics (分析):如何更新 Analytics (分析) 資源設定?
您可以透過 Google Analytics (分析) 資源的管理頁面更新資源設定,例如:
- 資料共用設定
- 資料保留設定
- 時區和貨幣設定
如要更新資源設定,請按照下列步驟操作:
- 在 Firebase 控制台中,依序前往 settings > 「Project settings」(專案設定)。
- 前往「整合」分頁,然後按一下 Google Analytics (分析) 資訊卡中的「管理」或「查看連結」。
- 按一下 Google Analytics (分析) 帳戶的連結, 開啟帳戶和資源設定。
iOS 應用程式中的 Analytics (分析):我能否在沒有廣告標示和廣告識別碼收集功能的情況下,安裝 Analytics (分析)?
是,詳情請參閱 設定資料收集和用量頁面。
數據分析:在 2021 年 10 月更新後,Google Analytics (分析) 部分有何異動?
如要查看異動的摘要,請參閱 Firebase 說明中心文章「Google Analytics for Firebase 中的全新 Google Analytics (分析) 4 功能」。
數據分析:為什麼取消 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 測試:您無法再使用 A/B 測試功能,因為實驗評估是由 Google Analytics (分析) 提供。
- Dynamic Links - 任何依賴 Google Analytics (分析) 資料的功能都會中斷。
此外,下列整合也會受到影響:
- 您無法再將Analytics (分析) 資料匯出至 BigQuery。
- 您無法再使用 Google Ads 整合功能或 Google AdMob 整合服務。
Analytics (分析):如何區隔「未」滿足某些條件的使用者?
您可以用「排除指定」的方式針對這些使用者重組問題。例如,將問題重新設定為「不要向曾購買商品的使用者顯示廣告」,並組成這些使用者的目標對象做為指定目標。
Analytics (分析):在 Google Analytics (分析) 介面中定義的目標對象和/或事件是否也會顯示在 Firebase 控制台中?
系統會同步處理您的目標對象和使用者屬性。部分功能需要使用 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 | 香港、中國 SAR |
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 | 蒙古 |
個月 | 中國 SAR 澳門 |
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 濫用行為影響。
如要將 App Check 與 Firebase 驗證搭配使用,您必須升級至 Firebase 驗證與 Identity Platform。
請記得,您必須在 Firebase 控制台中強制執行 App Check 驗證機制 (建議先監控流量),再強制執行這項檢查。此外,請仔細檢查 reCAPTCHA Enterprise 核准的網站清單,確認其中只包含您的正式環境網站,且在 App Check 中註冊專案的應用程式清單正確無誤。
請注意,App Check 會宣告呼叫來自您其中一個已註冊的應用程式,協助防範自動攻擊。但不會阻止使用者以非預期方式使用您的應用程式 (例如先從不完成登入流程來產生已傳送的簡訊)。
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 登入方法並進行啟用,然後按一下「Save」。
請確認應用程式使用的是最新的 Firebase 設定檔 (
google-services.json
)。
取得應用程式的設定檔。檢查是否仍出現錯誤訊息。如果沒問題,請繼續進行下一個疑難排解步驟。
確定有必要的基礎 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 登入方法並進行啟用,然後按一下「Save」。
請確認應用程式使用的是最新的 Firebase 設定檔 (
GoogleService-Info.plist
)。
取得應用程式的設定檔。檢查是否仍出現錯誤訊息。如果沒問題,請繼續進行下一個疑難排解步驟。
確定有必要的基礎 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 登入方法並進行啟用,然後按一下「Save」。
此外,在「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 驗證 JS SDK 會使用標示為 Browser key
的 Firebase 專案的 API 金鑰,並根據授權網域清單,使用這個金鑰來驗證登入重新導向網址是否有效。
視您存取 Authentication SDK 的方式而定,驗證功能會取得這個 API 金鑰:
如果您透過託管提供的驗證輔助程式讓使用者透過驗證 JS SDK 登入,則每當您部署至 Firebase 託管時,Firebase 就會自動將您的 API 金鑰連同其他 Firebase 設定提供給您。請確認網頁應用程式
firebaseConfig
中的authDomain
已正確設定,可使用該託管網站的其中一個網域。如要驗證這一點,請前往https://authDomain__/firebase/init.json
,並檢查projectId
是否與firebaseConfig
中的相符。如果您是自行管理登入程式碼,可以使用
__/firebase/init.json
檔案,將 Firebase 設定提供給自行管理的驗證 JS SDK 重新導向輔助程式。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 控制台中,依序前往 settings >「專案設定」,然後按一下「您的應用程式」區段。這個動作會自動建立一個 API 金鑰,您可以在網頁應用程式的「SDK 設定與設定」部分查看此金鑰。
請注意,Cloud 控制台中的新 API 金鑰不會稱為
Browser key
,而是與 Firebase 網頁應用程式的暱稱相同。 如果您決定針對這組新的 API 金鑰新增 API 限制,請確認 Firebase Authentication API 位於允許的 API 清單中。建立新的 API 金鑰後,請完成下方適用步驟:
Firebase 驗證:如何手動建構 OAuth 網路用戶端?
開啟 Google Cloud 控制台的「Credentials」(憑證) 頁面。
依序選取頁面頂端的「建立憑證」>「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 sign in」供應商,然後貼上剛剛透過 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 控制台中,前往函式資訊主頁並選取函式,然後在「其他詳細資料」下方查看函式的語言。
我使用 Firebase Extensions。Cloud Functions 執行階段更新是否會影響到我?
是,由於擴充功能使用 Cloud Functions,您擴充功能的執行階段需要更新和 Cloud Functions 相同的時間軸。
建議您定期將專案中安裝的每個擴充功能更新至最新版本。您可以透過 Firebase 控制台或 Firebase CLI 升級專案的擴充功能。
雲端通訊
雲端通訊:通知編輯器與雲端通訊有何不同?
Firebase 雲端通訊會透過用戶端 SDK 和 HTTP 和 XMPP 伺服器通訊協定,提供一組完整的訊息傳遞功能。對於具有較複雜訊息傳遞需求的部署作業,FCM 是最佳選擇。
通知撰寫工具是建構於 Firebase 雲端通訊的輕量無伺服器訊息傳遞解決方案。通知撰寫程式提供易於使用的圖形主控台和減少的編碼要求,讓使用者輕鬆傳送訊息來重新吸引並留住使用者、推動應用程式業務成長,以及支援行銷廣告活動。
功能 | 通知撰寫者 | 雲端通訊 | |
---|---|---|---|
目標 | 單一裝置 | ||
客戶訂閱不同主題 (例如天氣) | |||
預先定義使用者區隔 (應用程式、版本、語言) 中的用戶端 | |||
指定 Analytics (分析) 目標對像中的客戶 | |||
裝置群組中的用戶端 | |||
從用戶端到伺服器的上游 | |||
訊息類型 | 最多 2 KB 的通知 | ||
資料訊息 (最多 4 KB) | |||
廣告放送 | 立即 | ||
未來用戶端裝置當地時間 | |||
數據分析 | 內建通知數據分析收集與漏斗分析功能 |
雲端通訊:Apple 宣布即將淘汰 APN 的舊版二進位通訊協定。我需要做些什麼?
不可以。在 2017 年,Firebase 雲端通訊已切換為以 HTTP/2 為基礎的 APN 通訊協定。如果您使用 FCM 傳送通知到 iOS 裝置,則無需採取任何行動。
雲端通訊:我是否需要使用其他 Firebase 服務才能使用 FCM?
您可以將 Firebase 雲端通訊做為獨立元件使用,方法與使用 GCM 的方式相同,不必使用其他 Firebase 服務。
雲端通訊:我是現有的 Google 雲端通訊 (GCM) 開發人員。我應該改用 Firebase 雲端通訊嗎?
FCM 是 Firebase 品牌的全新 GCM。它沿用 GCM 的核心基礎架構,並搭配使用新的 SDK 讓雲端通訊開發工作更加輕鬆。
升級至 FCM SDK 的好處包括:
- 簡化用戶端開發作業。您不再需要自行撰寫註冊或訂閱項目重試邏輯。
- 立即可用的通知解決方案。通知 Composer 是無伺服器通知解決方案,您可以透過網路控制台使用,讓所有人都能根據 Google Analytics (分析) 的洞察資訊傳送通知給特定目標對象。
雲端通訊:我的目標裝置為何明顯無法接收訊息?
如果裝置似乎未成功接收訊息,請先檢查下列兩個可能原因:
通知訊息的前景訊息處理。用戶端應用程式需要新增訊息處理邏輯,以便在應用程式於裝置前景運作時處理通知訊息。詳情請參閱 iOS 和 Android 適用的詳細資料。
網路防火牆限制。如果貴機構的防火牆會限制傳入或傳出網際網路的流量,您必須將其設為允許與 FCM 連線,這樣 Firebase 雲端通訊用戶端應用程式才能接收訊息。要開啟的通訊埠如下:
- 5228
- 5229
- 5230
FCM 通常會使用 5228,但有時會使用 5229 和 5230。FCM 未提供特定 IP,因此您應允許防火牆接受傳送至 Google ASN 的 15169 ASN 所列 IP 區塊中,所有 IP 位址的傳出連線。
雲端通訊:我已在 Android 應用程式中實作 onMessageReceived
,但並未呼叫它。
應用程式在背景執行時,
通知訊息會顯示在系統匣內,且不會呼叫 onMessageReceived
。如果是含有資料酬載的通知訊息,系統匣會顯示通知訊息,且通知訊息內含的資料可以在使用者輕觸通知時啟動的意圖中擷取。
詳情請參閱「接收及處理訊息」一文。
通知撰寫者:通知編輯器與雲端通訊有何不同?
通知撰寫工具是建構於 Firebase 雲端通訊的輕量無伺服器訊息傳遞解決方案。通知撰寫程式提供易於使用的圖形主控台和減少的編碼要求,讓使用者輕鬆傳送訊息來重新吸引並留住使用者、推動應用程式業務成長,以及支援行銷廣告活動。
Firebase 雲端通訊會透過用戶端 SDK 和 HTTP 和 XMPP 伺服器通訊協定,提供一組完整的訊息傳遞功能。對於具有較複雜訊息傳遞需求的部署作業,FCM 是最佳選擇。
以下比較 Firebase 雲端通訊和通知撰寫者提供的訊息功能:
功能 | 通知撰寫者 | 雲端通訊 | |
---|---|---|---|
目標 | 單一裝置 | ||
客戶訂閱不同主題 (例如天氣) | |||
預先定義使用者區隔 (應用程式、版本、語言) 中的用戶端 | |||
指定 Analytics (分析) 目標對像中的客戶 | |||
裝置群組中的用戶端 | |||
從用戶端到伺服器的上游 | |||
訊息類型 | 最多 2 KB 的通知 | ||
資料訊息 (最多 4 KB) | |||
廣告放送 | 立即 | ||
未來用戶端裝置當地時間 | |||
數據分析 | 內建通知數據分析收集與漏斗分析功能 |
通知撰寫者:我是現有的 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-JDK.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-JDK.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 會呼叫舊版 HTTP 傳送 API,因此 2024 年 6 月 21 日起,API 會停止運作。 | 請使用 send() 方法。 |
sendToDeviceGroup()
|
Node.js | 由於 API 會呼叫舊版 HTTP 傳送 API,因此 2024 年 6 月 21 日起,API 會停止運作。 | 請使用 send() 方法。 |
sendAll()/sendAllAsync()/send_all()/sendMulticast()/SendMulticastAsync()/send_multicast()
|
Node.js、Java、Python、Go、C# | 這些 API 會呼叫批次傳送 API,因此會在 2024 年 6 月 21 日後停止運作。 | 升級至最新版 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 版破壞性變更) | 2024 年 6 月 21 日後,使用舊版 JS SDK 的網頁應用程式將無法註冊權杖。 | 將 Firebase Web SDK 升級至最新版本。 |
我會在 2024 年 6 月前看到服務降級嗎?
否。您可以在 12 個月 (2023 年 6 月 20 日至 2024 年 6 月 21 日) 將舊版 API 遷移至新的 API,且沒有任何服務降級。強烈建議您盡早規劃遷移作業,以免在 2024 年 6 月停用 API 時受到影響。
2024 年 6 月之後,您在使用上述 API/SDK 時,可能會發現錯誤增加或功能不足。
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 有何不同?
主題:使用 v1 API 時,不需在主題目標中加入「/topics/」前置字串。
裝置群組:您可以在 HTTP v1 API 中使用群組權杖做為權杖目標。不過,HTTP v1 API 不會在回應中傳回成功/失敗次數。建議您使用 FCM 主題或自行管理裝置群組。
HTTP v1 API 是否支援在單一要求中傳送訊息至多個權杖?
否。這項在舊版 HTTP API 中稱為「多點傳播」的功能,因為 HTTP v1 API 不支援,這個 API 對擴充性特別設計。
如果端對端延遲時間很重要,或是總擴散大小小於 100 萬個 (少於 100 萬個),Google 建議您使用 HTTP v1 API 傳送多個不同的要求。透過 HTTP/2 執行的 HTTP v1 API 同樣能為 99.9% 的多點傳送要求 (傳送少於 100 個符記) 執行類似的執行方式。針對離群用途 (傳送 1000 個符記),最多可達到處理率的三分之一,因此您需要額外的並行,才能針對這類非典型用途進行最佳化。相較於舊版的多點傳播,使用者可透過 HTTP v1 API 體驗更穩定及更高的可用性。
針對處理量和輸出頻寬,或是總擴散大小總和超過 100 萬 (超過 100 萬) 的情況下,Google 建議使用主題訊息功能。雖然主題訊息需要一次性操作才能訂閱主題的收件者,但可讓您 為每個專案展開頻率上限 10,000 QPS,但主題大小沒有上限。
哪些 Firebase Admin SDK 版本有新版 API?
平台 | Firebase Admin SDK 版本 |
---|---|
Node.js | >=11.7.0 |
Python | >=6.2.0 |
Java | >=9.2.0 |
前往 | >=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。
Cloud Storage for Firebase
Cloud Storage for Firebase:為什麼我無法使用 Cloud Storage for Firebase?
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。
Cloud Storage for Firebase:為什麼使用 Cloud Storage for Firebase API 時,收到有關服務帳戶權限和服務帳戶作業失敗的錯誤代碼 412 回應?
您可能會看到 412 錯誤代碼,可能是因為專案未啟用 Cloud Storage for Firebase API,或是必要的服務帳戶缺少必要權限。
請參閱相關的常見問題。
Cloud Storage for Firebase:在 Spark 方案專案中,可以儲存可執行檔案嗎?
針對免付費 (Spark) 方案的專案,Firebase 可禁止上傳及託管 Windows、Android 和 Apple (由 Cloud Storage for Firebase 和 Firebase 託管) 的特定可執行檔案類型。這項政策的用意是防止 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 產品頁面。
- 在「Files」分頁中,找出資料夾階層中遭禁止刪除的檔案,然後使用面板左側檔案名稱旁的核取方塊選取這些檔案。
- 按一下「刪除」,並確認檔案已刪除。
如要進一步瞭解如何管理 使用 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 值區,看到名為「[email protected]
」的額外服務帳戶。自 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 未來有哪些計畫?
請參閱「Dynamic Links 常見問題」。
Dynamic Links:為什麼我的 Android 應用程式存取每個 Dynamic Links 兩次?
getInvitation
API 會清除已儲存的 Dynamic Links,以免遭到重複存取。請務必在每個深層連結活動中,將 autoLaunchDeepLink
參數設為 false
來呼叫 API,以便在主要活動外觸發活動時清除。
Firebase 本機模擬器套件
為什麼模擬器套件記錄顯示以「不建議在單一專案模式中使用多個專案 ID」開頭的錯誤訊息?
這則訊息表示模擬器套件偵測到可能使用不同的專案 ID 執行特定產品模擬器。這可能表示設定錯誤,而且在模擬器嘗試彼此通訊,以及您嘗試透過程式碼與模擬器互動時,也可能會發生問題。如果專案 ID 不相符,則經常似乎缺少資料,因為儲存在模擬器中的資料對 projectID 為金鑰,互通性則取決於相符的專案 ID。
這是開發人員常造成混淆的原因,因此,除非您在 firebase.json
設定檔中另行指定,否則本機模擬器套件現在只允許使用單一專案 ID 執行。如果模擬器偵測到多個專案 ID,會記錄警告並可能會擲回嚴重錯誤。
檢查專案 ID 宣告內容是否不一致:
-
在指令列設定的預設專案。根據預設,啟動專案時,系統會從使用
firebase init
或firebase use
選擇的專案開始擷取專案 ID。如要查看專案清單 (並瞭解已選取的專案),請使用firebase projects:list
。 -
單元測試。專案 ID 通常會在呼叫規則單元測試程式庫方法
initializeTestEnvironment
或initializeTestApp
時指定。其他測試程式碼可能會使用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 可禁止上傳及託管 Windows、Android 和 Apple (由 Cloud Storage for Firebase 和 Firebase 託管) 的特定可執行檔案類型。這項政策的用意是防止 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 產品頁面。
- 在「Files」分頁中,找出資料夾階層中遭禁止刪除的檔案,然後使用面板左側檔案名稱旁的核取方塊選取這些檔案。
- 按一下「刪除」,並確認檔案已刪除。
如要進一步瞭解如何管理 使用 Firebase 工具託管資源,以及透過用戶端程式庫管理 Cloud Storage for Firebase 值區,請參閱相關說明文件。
託管:為什麼 Firebase 控制台中的「託管」發布記錄表格顯示的檔案計數超過本機專案實際所含的檔案數量?
Firebase 會自動新增包含代管網站中繼資料的額外檔案,這些檔案也會計入該版本的檔案總數中。
託管:每項 Firebase 專案可以建立多少個託管網站?
Firebase 代管多網站功能支援每個專案最多支援 36 個網站。
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 名開發人員的專案上配合快速疊代,您可以在應用程式中暫時設定 FirebaseRemoteConfigSettings
物件,並設定最短擷取時間間隔 (setMinimumFetchIntervalInSeconds
)。
遠端設定:應用程式傳送擷取要求後,遠端設定服務傳回已擷取的值的速度有多快?
裝置通常會在一秒內收到已擷取的值,而且通常會以毫秒為單位收到擷取的值。遠端設定服務會在幾毫秒內處理擷取要求,但完成擷取要求所需的時間取決於裝置的網路速度和裝置所用網路連線的延遲時間。
如果您的目標是盡快讓擷取到的值在應用程式中生效,但是不營造不愉快的使用者體驗,建議您在每次應用程式執行全螢幕重新整理時,對 fetchAndActivate
新增呼叫。
Test Lab
請造訪 Test Lab 疑難排解頁面,查看實用提示與常見問題解答。
Firebase 使用者區隔儲存空間
什麼是 Firebase 使用者區隔儲存空間?
Firebase 使用者區隔儲存空間會儲存 Firebase 安裝 ID、相關屬性和區隔,以及您建立的目標對象名單,以便將指定目標資訊提供給其他使用這些項目的 Firebase 服務,例如 Crashlytics、FCM 和遠端設定個人化等。