8
我無法成功地給做,我也跟着的指示在火力地堡文檔以下步驟:如何將多個身份驗證提供程序鏈接到Firebase帳戶?
- 使用現有的身份驗證提供者簽名的使用(我的情況:Facebook的)。
- 完成新身份驗證提供高達登錄流程,但不包括調用的
Auth.signInWith
方法之一(我的情況:我要鏈接的電子郵件&密碼和谷歌的OAuth)。所以這是我不清楚的一步,我使用var provider = new firebase.auth.GoogleAuthProvider();
創建了一個新的提供商,我沒有做Firebase.auth().signInWithPopup(provider)
。 - 然後讓authcredential爲谷歌我跑
var credential = firebase.auth.GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
(我得到一個未定義的googleUser錯誤)這個錯誤似乎是恰當的,因爲我還沒有簽約使用谷歌的Oauth但那是第二步驟陳述了(不簽到) - 然後這條命令與Facebook提供商的當前用戶鏈接
auth.currentUser.link(credential)
我的理解是當前用戶需要鏈接到我現有的提供者(Facebook)。似乎從未計算出Google的憑證變量。任何具有功能性代碼示例的人都會很有幫助。
你提到的手動,有沒有一個不同的更自動的方式來鏈接提供商? – jasan
不完全。我想我沒有解釋得很好。我的意思是手動,因爲開發人員會根據一些需求(需要谷歌提供商訪問谷歌日曆,升級匿名用戶等)選擇鏈接。另一種情況是後端服務器出於安全原因需要它。例如,您使用google返回[email protected],登錄到firebase。用戶然後使用Facebook返回相同的電子郵件[email protected]在單獨的設備上登錄。在這種情況下,會出現證書已被使用的錯誤。在這種情況下,您需要鏈接帳戶才能鏈接兩個提供商。 – bojeil
@bojeil我看到你使用了'linkWithPopup()'。然後,[Firebase教程]中提到的linkWithCredential()是什麼(https://firebase.google.com/docs/auth/android/account-linking#link-auth-provider-credentials-to-a-user -帳戶)? –