API 金鑰是一組專屬字串,用於將要求轉送至 Firebase
專案。本頁面說明
基本介紹 API 金鑰,以及使用和
使用 Firebase 應用程式管理 API 金鑰。
以下是最重要的學習事項
關於 Firebase 的 API 金鑰:
Firebase 相關 API
API 金鑰僅用於識別 Firebase 專案或應用程式;
無權 呼叫 API (例如其他 API)
允許)。系統會處理 Firebase 相關 API 的授權
透過 Google Cloud IAM 權限與 API 金鑰分開
Firebase Security Rules 或 Firebase App Check 。這就是為什麼可以
如果 Firebase API 金鑰只用於
Firebase 相關 API 。
建議您
詳閱並套用適當的限制
和上限 (包括 Firebase API 金鑰)。
具體來說,請將該金鑰限制於您實際使用的 API
並限製配額 (如適用)。請注意,
所有 Firebase 佈建
API 金鑰有「API 限制」預設套用規則
只 將 Firebase 佈建的 API 金鑰用於
Firebase 相關 API 。
至於所有其他 API (例如 Places API for Maps,或是
Google AI Gemini API),請使用
不同的 API 金鑰 。
我們強烈建議您保護 Realtime Database 、
使用 Firebase Security Rules ,取得Cloud Firestore 及Cloud Storage 資料 。
請勿只仰賴 API 金鑰限制。
API 金鑰和 Firebase 的一般資訊
Firebase 的 API 金鑰與一般 API 金鑰不同
有別於 API 金鑰的一般使用方式,Firebase 服務的 API 金鑰會
「不會」 用於控制後端資源的存取權 ;只能透過幾種方式完成
使用 Firebase Security Rules (控制哪些使用者 可以存取資源)
Firebase App Check (用於控管哪些應用程式 可存取資源)。
通常需要迅速保護 API 金鑰 (例如
使用保管箱服務,或將金鑰設為環境變數不過
Firebase 服務的 API 金鑰可加入程式碼或簽到設定
檔案。
雖然 Firebase 服務的 API 金鑰可以放心在程式碼中加入,不過,
詳閱並套用適當的限制和限制 。
建立 API 金鑰
Firebase 專案可以有多個 API 金鑰,但每個 API 金鑰只能
連結單一 Firebase 專案
執行下列任一操作時,Firebase 會自動為您的專案建立 API 金鑰
包括:
建立 Firebase 專案 >Browser key
自動建立
建立 Firebase Apple 應用程式 >iOS key
自動建立
建立 Firebase Android 應用程式 >Android key
自動建立
,瞭解如何調查及移除這項存取權。
您也可以在以下頁面建立自己的 API 金鑰:
Google Cloud 控制台 ,
例如用於開發或偵錯 。進一步瞭解
在後續頁面推薦這些內容的時機
查看 API 金鑰
您可以在以下頁面查看及管理所有 專案的 API 金鑰:
API 與服務 >憑證
設定 Google Cloud 控制台。
您也可以查看哪些 API 金鑰會自動對應至
Firebase 應用程式 。變更者:
根據預設,專案中所有 Firebase 應用程式的相同平台 (Apple 和
Android 和 Web) 會使用相同的 API 金鑰。
Firebase Apple 應用程式 :在 Firebase 中尋找自動比對的 API 金鑰
設定檔 (GoogleService-Info.plist
)
API_KEY
欄位中。
Firebase Android 應用程式 — 在以下位置找出自動比對的 API 金鑰:
Firebase 設定檔 google-services.json
current_key
欄位中。
Firebase 網頁應用程式 :在 Firebase 中尋找自動比對的 API 金鑰
config 物件。apiKey
使用 API 金鑰
API 金鑰會在與以下使用者互動時識別您的 Firebase 專案
Firebase/Google 服務。具體來說,這些 ID 可用來連結 API 要求
即可。也能輕鬆存取
公開資料。
例如,您可以將 API 金鑰的值傳遞至 REST 來明確使用 API 金鑰。
做為查詢參數本例說明如何提出要求
加入
Dynamic Links 連結縮短工具 API :
POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY
應用程式呼叫需要提供 API 金鑰的 Firebase API 時
透過行動裝置/網路用戶端,您的應用程式就會自動在
Firebase 設定檔/物件。不過,您可以
透過其他機制 (包括環境) 為您的應用程式提供 API 金鑰
變數。
查看 API 金鑰並套用適當的限制 (建議)
雖然您不必將 Firebase 服務的 API 金鑰視為
密鑰,您必須按照
專區。
對於正式版應用程式正在使用的 API 金鑰,請務必謹慎
變更其使用限製或限制您應該在
測試應用程式並使用測試 API 金鑰
變更正式版 API 金鑰的限製或限制。
,瞭解如何調查及移除這項存取權。
注意: 如果您用於 Firebase 服務的 API 金鑰設有「API 限制」
並且收到 API_KEY_SERVICE_BLOCKED
或 403 禁止的錯誤訊息,請確認
API 金鑰包含
金鑰的「API 限制」中包含必要 API許可清單 。
查看自動加入許可清單的 API 金鑰許可清單
Firebase 在專案中建立 API 金鑰時,會自動新增
「API 限制」
。 已加入這份許可清單的 API 是與 Firebase 相關的 API,
要求用戶端在呼叫中提供 API 金鑰。請注意,大部分
使用 Firebase 服務所需的 API 其實不一定要
API 金鑰的許可清單。
由於 Firebase 會加入「所有」 Firebase 服務所需的 API,因此
API 金鑰的許可清單可能包含您未使用產品的 API。
您可以將 API 從許可清單中移除,但必須小心不要
移除 Firebase 和您使用的 Firebase 服務所需的 API
(請參閱
Firebase 相關 API 清單
必須列入各項服務 / 產品的許可清單)。否則,
會在呼叫 Firebase 服務時收到錯誤訊息。
如果使用密碼式 Authentication ,則會提高配額
如果你使用密碼式 Firebase Authentication ,且有人取得你的 API
金鑰,對方將無法 存取您的任何 Firebase 專案資料庫
或「Cloud Storage 」資料,只要資料受到
Firebase Security Rules 。不過,對方也可以使用您的 API 金鑰存取
Firebase 的驗證端點
。
為了避免有人濫用 API 金鑰
嘗試蠻力攻擊,即可將配額
identitytoolkit.googleapis.com
個端點會反映正常流量
使用者的期望請注意,如果您提高這項配額
使用者突然增加時,可能會遇到登入錯誤,直到您提高配額為止。
您可以在
Google Cloud 控制台 。
針對任何非 Firebase 服務使用個別受限制的 API 金鑰
雖然通常不需要將用於 Firebase 服務的 API 金鑰處理
視為秘密,您應該為自己使用的 API 金鑰採取一些額外預防措施
與其他 Google Cloud API 相互通訊
如果你在任何平台上使用非 Firebase 的 Google Cloud API
服務 / 產品,強烈建議建立個別的受限制 API 金鑰
與這些 API 搭配使用如果 API 適用於
會產生費用的 Google Cloud 服務。
舉例來說,當您在 iOS 上使用 Firebase ML 和 Cloud Vision API 時,
應建立單獨的 API 金鑰
可用於存取 Cloud Vision API
針對非 Firebase API 使用不同的受限制的 API 金鑰,就能輪替或
視需要更換金鑰,並在 API 中加入其他限制
金鑰
而且 Firebase 服務不會中斷
查看建立 API 專屬金鑰的操作說明
以下說明如何建立獨立的受限制 API 金鑰
名為 Super Service API
的「假」 API。
開啟「Credentials」(憑證) 頁面。
Google Cloud 控制台中的「設定」頁面。系統出現提示時,請選取您的專案。
針對清單中的每個現有 API 金鑰,開啟編輯檢視畫面。
在「API 限制」 部分,選取「限制金鑰」 ,然後將
列出您想讓 API 金鑰存取的所有 API。請確認
,不 包含您要建立個別 API 金鑰的 API
(在本例中為 Super Service API
)。
設定 API 金鑰的 API 限制 時,您將明確
宣告金鑰可存取的 API。根據預設,
「API 限制」 專區已選取「不限制金鑰」 選項,也就是 API 金鑰
可用於存取專案已啟用的任何 API。
現有的 API 金鑰不會授予 Super Service API
的存取權,但
您新增至金鑰的所有 API 都能繼續使用
清單。
重要事項: 如果日後啟用任何其他 API,就必須將這些 API 新增到
查看適用 API 金鑰的 API 限制 清單。
步驟 2:建立並使用新的 API 金鑰來存取 Super Service API
返回「Credentials」(憑證) 頁面
頁面。確認已選取 Firebase 專案。
按一下「Create credentials」(建立憑證) >API 金鑰 。請注意新的 API 金鑰
按一下「Restrict key」(限制金鑰) 。
在「API 限制」 部分,選取「限制金鑰」 ,然後將
只 列出 Super Service API
。
這組新的 API 金鑰只會授予 Super Service API
的存取權。
將您的應用程式和服務設為使用新的 API 金鑰。
使用環境專屬 API 金鑰 (建議)
如果您為不同的環境 (例如
測試和正式環境,請務必確保每個應用程式執行個體
對應的 Firebase 專案舉例來說,測試環境應用程式執行個體
絕不會與正式環境 Firebase 專案通訊這也表示
測試環境應用程式需要使用與測試環境 Firebase 專案相關聯的 API 金鑰。
如何減少從開發、測試到測試中程式碼變更
您的 API 金鑰 (請將金鑰設為
環境變數
請注意,如果您一併使用 Firebase Local Emulator Suite 進行開發
與 Firebase ML 整合,您必須建立並使用僅供偵錯的 API 金鑰。使用說明
建立該類金鑰的方法都位於
Firebase ML 文件 。
常見問題和疑難排解
常見問題
是否使用 API 金鑰
是否預設限制 Firebase 服務?
是,根據預設,Firebase 自動佈建的所有 API 金鑰可與
Firebase 相關 API
「API 限制」
並自動套用這些最佳化建議詳情請參閱
Firebase 相關 API 清單
或一些人
這些新增至許可清單的 API 是由 Firebase 服務呼叫的 API
用戶端程式碼,並且需要 API 金鑰來識別 Firebase 專案,或
應用程式。請注意,使用 Firebase 服務所需的「大部分」 API 實際上並非
必須列在 API 金鑰的許可清單中。
由於 Firebase 會加入「所有」 Firebase 服務所需的 API,因此
API 金鑰的許可清單可能包含您未使用產品的 API。個人中心
可以將 API 從許可清單中移除,但必須小心不要移除
您所使用的 Firebase 和 Firebase 服務所需的 API (請參閱
Firebase 相關 API 清單
必須列入各項服務 / 產品的許可清單)。否則,
會在呼叫 Firebase 服務時收到錯誤訊息。
重要事項: 沒有任何 Firebase 相關 API 使用 API 金鑰做為授權
呼叫 API透過 API 呼叫傳遞的 API 金鑰僅適用於
Firebase 專案或應用程式的識別。
您可以查看所有的 API 金鑰及其「API 限制」的
API 與服務 >憑證
設定 Google Cloud 控制台。
請注意,Firebase 的「API 限制」套用方式如下:
自 2024 年 5 月起,Firebase 自動佈建的所有新 API 金鑰都會
會自動限制在
Firebase 相關 API 清單 。
2024 年 5 月,Firebase 既有的 API 金鑰和無限制 API 金鑰
只有
Firebase 相關 API 清單
加上 目前已啟用的任何專案 API。
Firebase 先前使用的任何現有 API 金鑰以及受限 的 API 金鑰
並未變更自動佈建設定。
未由 Firebase 自動佈建的任何現有 API 金鑰
已變更。
,瞭解如何調查及移除這項存取權。
重要事項: 如果您在任何平台上使用 Google Cloud API,且該 API 並未
Firebase 服務 / 產品 (強烈建議使用)
建立獨立的受限制的 API 金鑰
與這些 API 搭配使用。
如何判斷哪個 API 金鑰
是否與 Firebase 應用程式相關聯?
您可以使用下列任一選項來判斷哪個 API 金鑰
連結 Firebase 應用程式:
Firebase 個控制台
步行到settings
專案設定 、
然後向下捲動至「你的應用程式」 資訊卡。
選取感興趣的應用程式。
取得所需應用程式的 Firebase 設定檔/物件,然後
找出 API 金鑰:
Apple :下載 GoogleService-Info.plist
,然後找出
API_KEY
欄位
Android :下載 google-services.json
,找出以下設定檔的設定:
所需應用程式 (請尋找其套件名稱),然後找出
current_key
欄位
網路 :選取「Config」 選項,然後找出 apiKey
欄位
Firebase 個 CLI
執行下列指令,取得所需應用程式的 Firebase 設定檔/物件
以下指令:
firebase apps:sdkconfig PLATFORM FIREBASE_APP_ID
PLATFORM (其中一個):IOS
|ANDROID
|WEB
FIREBASE_APP_ID :為 Firebase 指派的專屬 ID,
Firebase 應用程式 (查看應用程式 ID )
在應用程式的 Firebase 設定中,找出 API 金鑰:
我可以
Firebase 設定中針對同一個 Firebase 應用程式列出兩組 API 金鑰
檔案/物件?
Firebase Apple 應用程式 :每個應用程式都有專屬的設定檔,但只能
列出了一組 API 金鑰
Firebase Android 應用程式 — Firebase 專案中的所有 Android 應用程式都是
已列在相同設定檔中,且每個 應用程式只能有一個 API 金鑰
。這個設定檔中的每個應用程式可以列出不同的金鑰,
不過,
Firebase 網頁應用程式 :每個應用程式都有專屬的設定物件,且只能
列出了一組 API 金鑰
不過,您可以 在單一應用程式中使用多個 API 金鑰。您必須提供
讓應用程式得以存取其他 API 金鑰
變數。其他 API 金鑰的存取機制無法依靠這些金鑰
Firebase 設定檔/物件中列出的 API 金鑰。
Firebase 運作方式
瞭解與應用程式相符的 API 金鑰 (例如在 Firebase 設定中
檔案/物件)?
首次取得應用程式的 Firebase 設定時
檔案/物件 、
Firebase 會檢查專案中目前是否有任何 API 金鑰
「應用程式限制」
內容與應用程式相符 (例如,與 Apple 應用程式相符的軟體包 ID)。
如果 Firebase 找不到任何相符的受限鍵,就會列在
Apple 應用程式的 iOS key
設定檔/物件,Android key
的
Android 應用程式和 Browser key
適用於網頁應用程式 (假設這些金鑰已存在)
且無「應用程式限制」防止模型比對出來
應用程式)。
可以手動
要從 Firebase 設定檔/物件中刪除 API 金鑰和欄位嗎?
可以。您可以從設定檔/物件中手動刪除 API 金鑰。不過
您必須為應用程式提供其他機制存取 API 金鑰
例如透過環境變數否則,任何向 Firebase 服務發出的呼叫
失敗。
可以手動
可以使用其他 API 金鑰編輯 Firebase 設定檔/物件嗎?
可以。您可以手動編輯設定檔/物件,將其他 API 金鑰建立關聯
使用應用程式
在 Firebase 設定中手動編輯 API 金鑰
檔案/物件,但通常不建議使用 。這項服務
會提高存取 Firebase 服務發生問題的機率。不過,
編輯設定檔/物件,請按照下列步驟操作:
請確認 API 金鑰的範圍適用於
設定檔/物件
請確認廣告本身
禁止 API 的「API 金鑰限制」
並無法搭配該應用程式使用
請確認 API 金鑰有適當的「API 限制」
。詳情請參閱
Firebase 相關 API 必須加入各個 API 的許可清單
Firebase 服務 / 產品。
請注意,
重新取得應用程式的設定檔/物件
控制台一律會列出
Firebase 會自動比對該應用程式 。所以
您必須視需要重複手動編輯。
我可以移動
要將 API 金鑰從某項 Firebase 專案轉移到另一個專案嗎?
否。API 金鑰只能識別特定專案,無法移至其他專案
專案。
如果我
要刪除 Google Cloud 控制台中列出的 API 金鑰嗎?
如果刪除某個應用程式正在使用的 API 金鑰,則會從該應用程式發出 API 呼叫
失敗。系統可能會顯示您嘗試使用的報表、電子郵件或錯誤
無效的 API 金鑰。
API 金鑰一經刪除即無法復原。
哪一個?
必須在「API 限制」頁面中使用 API要建立 Firebase API 金鑰的許可清單嗎?
如果是 Firebase API 金鑰,唯一需要套用至金鑰的 API
「API 限制」許可清單是指用戶端必須提供
以及 API 金鑰與呼叫請注意,只有極少數與 Firebase 相關的 API 具有這項特性
才能正常運作專案中已啟用的大多數 Firebase 相關 API,都不一定要
金鑰的「API 限制」加入許可清單。
重要事項: 沒有任何 Firebase 相關 API 使用 API 金鑰做為授權
呼叫 API透過 API 呼叫傳遞的 API 金鑰僅適用於
Firebase 專案或應用程式的識別 。
請參閱下表,確認需要哪些 Firebase 相關 API
已納入「API 限制」Firebase API 金鑰的許可清單。別忘了
Firebase API 金鑰只能用於 Firebase 服務。進一步瞭解
建立中
特定類型的 API 專屬的受限 API 金鑰 。
如要查看及管理專案的 API 金鑰,請前往
API 與服務 >憑證
設定 Google Cloud 控制台。
注意: 如果您在離線狀態下收到 API_KEY_SERVICE_BLOCKED
或 403 禁止
但您使用的 API 金鑰
與資料表中列出的必要 API 聯絡
Firebase 支援 。
API 名稱 (服務名稱)
API 顯示名稱
相關聯的 Firebase 服務 / 產品
firebase.googleapis.com
Firebase Management API
所有產品
logging.googleapis.com
Cloud Logging API
所有產品
firebaseinstallations.googleapis.com
Firebase 安裝 API
Cloud Messaging 、Crashlytics 、In-App Messaging 、
Performance Monitoring 、Remote Config 、Firebase ML
firebaseappcheck.googleapis.com
Firebase App Check API
App Check
firebaseappdistribution.googleapis.com
Firebase 應用程式發布 API
App Distribution
firebaseapptesters.googleapis.com
Firebase App Testers API
App Distribution
identitytoolkit.googleapis.com
Identity Toolkit API
Authentication
securetoken.googleapis.com
權杖服務 API
Authentication
firebaserules.googleapis.com *
Firebase 規則 API
Cloud Firestore 、Cloud Storage 、Realtime Database
datastore.googleapis.com
Cloud Datastore API
Cloud Firestore
firestore.googleapis.com
Google Cloud Firestore API
Cloud Firestore
fcmregistrations.googleapis.com
FCM Registration API
Cloud Messaging
firebasestorage.googleapis.com
Cloud Storage for Firebase API
Cloud Storage
firebasedynamiclinks.googleapis.com
Firebase Dynamic Links API
Dynamic Links
firebasehosting.googleapis.com *
Firebase 託管 API
Hosting
firebaseinappmessaging.googleapis.com
Firebase 應用程式內通訊 API
In-App Messaging
firebaseml.googleapis.com
Firebase ML API
Firebase ML 、Vertex AI in Firebase
mlkit.googleapis.com **
ML Kit API
Firebase ML
mobilecrashreporting.googleapis.com
Mobile Crash Reporting API
Performance Monitoring
play.googleapis.com
Google Play Android Developer API
Performance Monitoring
firebaseremoteconfig.googleapis.com
Firebase 遠端設定 API
Performance Monitoring 、Remote Config
firebaseremoteconfigrealtime.googleapis.com
Firebase 遠端設定 Realtime API
Performance Monitoring 、Remote Config
cloudconfig.googleapis.com **
不適用
Remote Config
firebasedatabase.googleapis.com *
Firebase 即時資料庫 API
Realtime Database
* 只有在您將 Firebase API 金鑰與第三方搭配使用時,才需要提供這個屬性
,或直接存取 Firebase 服務 / 產品。
** 舊版產品的 SDK 為必要欄位。如果使用
SDK 是最新版,這個 API 不需要在金鑰的
加入許可清單。
疑難排解
如何
修正顯示「API_KEY_SERVICE_BLOCKED
」或「403 禁止」錯誤
要封鎖向這個 API 發出的要求嗎?
如要取得API_KEY_SERVICE_BLOCKED
,請按照這份常見問題中的指引操作
錯誤或類似下方的錯誤:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
應用程式用來呼叫 API 的 API 金鑰可能
「API 限制」
而且金鑰的許可清單不包括這個 API。
如果在嘗試使用 Firebase 相關專案時收到這則錯誤訊息
並確認您使用的 API 金鑰
這個
金鑰的「API 限制」中包含必要 API許可清單 。
如果您在嘗試使用非 Firebase 服務 時收到這則錯誤訊息,
我們極力建議您為該服務建立新的 API 金鑰,並且
也能使用 Google Cloud CLI 或
Compute Engine APIFirebase API 金鑰只能用於 Firebase 服務 / 產品。
進一步瞭解如何建立
特定類型的 API 專屬的受限 API 金鑰 。
如何
要修正這個錯誤嗎?「無法從
伺服器。」
網頁應用程式使用的 API 金鑰可能
「API 限制」
。如果是這種情況,請確認 Firebase Management API
是否在允許的 API 清單中
我收到了電子郵件或錯誤訊息
我的 API 金鑰無效。發生了什麼事?該如何修正這個問題?
以下是 API 金鑰無效的一些常見原因:
API 金鑰有
「API 金鑰限制」
以免與嘗試使用金鑰的應用程式配對
(「應用程式限制」) 或無法用於呼叫的 API (「API」)
限制」)。
此 API 金鑰已從 Google Cloud 控制台中的專案刪除。
應用程式的 API 金鑰並未建立於應用程式
Firebase 設定檔/物件。
如要修正這個問題,其中一種方法是取得應用程式的更新版本
Firebase 設定檔/物件
然後使用新的檔案/物件替換 舊的設定檔/物件。
傳送可供下載或顯示設定物件的設定檔之前
控制台,Firebase 會檢查列出的 API 金鑰
。