為什麼我會看到這則訊息?
如果系統偵測到其他 Firebase 或 Google Cloud 專案中 OAuth 2.0 用戶端 ID 的套件名稱和 SHA-1 與您指定的相同,就會發生這個錯誤。您在 Firebase 主控台中將 Firebase 加入 Android 應用程式後,系統會為應用程式產生一組 Google OAuth 2.0 用戶端 ID,這組 ID 會利用部分 Google API (例如 App Invites 或 Drive API) 來驗證您的應用程式。基於安全考量,用來建立 OAuth 2.0 用戶端 ID 的套件名稱和 SHA-1 指紋組合,在 Firebase 與 Google Cloud 所有專案中均不得重複。
這會對我的應用程式造成什麼影響?
您必須設定 Android 應用程式的套件名稱和 SHA-1 才能使用兩項 Firebase 功能:
- 邀請:如果使用者未提供 SHA-1,此功能無法正常運作。系統目前尚不支援使用其他專案的 SHA-1。
- 驗證:如要使用 Google 提供的驗證服務,您必須在 Sign-In 設定中將現有專案的用戶端 ID 手動加入許可清單。
該怎麼做?
如果您未使用 Firebase 邀請或將 Google 做為 Firebase 驗證登入供應商,就不需採取任何行動。如果您使用上述其中一項功能,請參考以下最符合您情況的案例:
我知道哪個 Google Cloud 專案包含衝突的 OAuth 2.0 用戶端 ID,即使要刪除我的 Firebase 專案或必須使用邀請功能也沒關係。如果您剛才建立這個專案,或者將 Firebase 加入應用程式沒有多久,最簡單的做法是刪除專案,然後匯入現有的 Google 專案。如要這麼做,請按照以下步驟進行:
- 刪除 Firebase 專案。這項操作執行後就無法復原,而且會一併刪除與專案相關的所有資料。
- 前往 Firebase 主控台。
- 按一下 [Import Google project]。
- 選取包含 OAuth 2.0 用戶端 ID 的現有專案,然後按一下 [Add Firebase]。
如果您無法匯入現有的專案,而且也不打算使用「邀請」功能,那麼可將現有的 OAuth 2.0 用戶端 ID 手動加入許可清單,日後就能使用 Google 提供的登入服務。
請先找出現有專案的 OAuth 2.0 用戶端 ID,步驟如下:
- 前往 Google Cloud Console 的憑證頁面。如果系統沒有自動開啟包含 OAuth 2.0 用戶端 ID 的專案,請在頁面右上角的下拉式選單中選取專案。
- 在「OAuth 2.0 client IDs」部分中,找出包含用於 Firebase 專案的 SHA-1 和套件名稱的用戶端名稱。如果您不確定哪個用戶端才是正確的,只要按一下用戶端名稱即可查看詳情。
- 找到正確的用戶端名稱後,請複製「Client ID」欄中的完整值。
接下來,請將這個用戶端 ID 加入許可清單,即可使用 Google 提供的登入服務。如要這麼做,請按照以下步驟進行:
- 前往 Firebase 主控台,選取您的專案。
- 選取左側選單中的 [Auth]。
- 選取 [Sign in method] 標籤。
- 在「Sign in method」頁面上,按一下 Sign in providers 資訊卡中的 [Google]。
- 展開 [Whitelist client IDs from external projects option]。
- 將 Cloud Console 中的用戶端 ID 貼到文字欄位中,然後按一下 [Add]。
如果您不知道哪個專案包含衝突的 OAuth 2.0 用戶端 ID,請執行下列步驟,看看能否幫您找到專案:
- 前往 Google Cloud Console 的憑證頁面。
- 在「OAuth 2.0 client IDs」部分中,按一下用戶端名稱,即可看到建立用戶端 ID 時使用的 SHA-1 和套件名稱。請重複這個步驟,直到您找出正確的用戶端名稱或查看過所有用戶端資訊為止。
如果找不到包含相符的 SHA-1 和套件名稱的用戶端名稱,請在頁面右上角的下拉式選單中選取其他專案,然後重複以上步驟。
在某些情況下,OAuth 2.0 用戶端可能位於並非由您擁有的專案中。如果找不到衝突的專案,請與 Firebase 支援小組聯絡,將發生衝突的套件名稱和 SHA-1 指紋提供給他們。