2017-08-24 88 views
2

我有一個當前的數據庫與Firebase的活動用戶,可以登錄用戶/ pwd,但現在我正在實施Facebook登錄,我意識到鏈接Facebook帳戶與唯一方法現有用戶僅在用戶已使用user/pwd登錄但未登錄之前登錄。Firebase:鏈接Facebook帳戶與現有用戶

我的應用程序中有兩個按鈕(使用fb和電子郵件登錄),但如果我嘗試使用現有用戶的同一電子郵件使用fb登錄,我將收到以下錯誤auth/account-exists-with -different-credential和文檔說,爲了解決這個問題,用戶需要先登錄然後鏈接。

您是否知道是否有辦法鏈接兩個帳戶,但是沒有先執行登錄,我的意思是,從登錄視圖中?

+0

https://github.com/rhroyston/firebase-v4-auth –

回答

1

您需要先登錄用戶,然後再進行鏈接。如果你想確保它是同一個用戶,這很重要。否則,您可以在Firebase控制檯中將每個電子郵件切換爲多個帳戶。 解決此問題的方法是,當您收到錯誤auth/account-exists-with-different-credential時,在使用Facebook登錄並且該帳戶已存在密碼帳戶後,該錯誤將包含error.emailerror.credential。 然後您打電話給firebase.auth().fetchProvidersForEmail(error.email),以此電子郵件的提供者ID列表解決該問題。在這種情況下,它將包含['password']。然後您要求用戶提供他們的密碼。您致電signInWithEmailAndPassword(error.email, password)登錄原始用戶。然後您撥打firebase.auth().currentUser.linkWithCredential(error.credential)將Facebook憑證鏈接到密碼帳戶。現在這兩個帳戶都已合併,用戶可以使用其中任一帳戶登錄。

+0

聽起來不錯,鍵入密碼的額外步驟,但最終它會更好。謝謝! – SoldierCorp

相關問題