2017-09-19 95 views
0

有關通過電話號碼進行身份驗證的Firebase身份驗證的問題。是否需要完整登錄才能使用Firebase電話身份驗證驗證電話號碼?

我想知道是否有可能將「電話提供商」鏈接爲Google Auth Provider。文檔中沒有明確提及它 - https://firebase.google.com/docs/auth/android/account-linking

讓我撓頭的事情是 - 鏈接多個Auth Provider文檔談論開始與您想要鏈接到現有提供商(Google提供商)的新提供商(電話提供商)進行身份驗證,但隨後停止調用「FirebaseAuth.signInWithXXX」。

因此,理論上可以像 一樣工作1.用戶通過谷歌(谷歌idp提供商)登錄 2.用戶啓動電話auth(電話號碼提供商) - 並獲得短信息。 3.在某些情況下,SMS應該觸發自動驗證,或者他從SMS消息中輸入6位數代碼 4.但基於帳戶鏈接文檔,而不是在此處調用FirebaseAuth.signInWithXXX,我們可以改爲調用FirebaseUser.linkWithCredential(PhoneAuthCredential)。

所以我想知道如果一個電話號碼驗證沒有明確的登錄與PhoneAuthCredential認爲是完整的?

回答

1

您可以將PhoneAuthCredential鏈接到現有用戶,在您的情況下,使用GoogleAuthProvider的用戶。

用戶使用Google登錄後。 然後您將通過PhoneAuthProvider.getInstance().verifyPhoneNumber(phoneNumber, ...) 這將通過PhoneAuthCredential或驗證ID解決。然後,您可以通過PhoneAuthProvider.getCredential詢問SMS代碼並實例化PhoneAuthCredential。

然後,您可以將該憑證鏈接到當前用戶:currentUser.linkWithCredential(phoneAuthCredential)

+0

Thanks bojeil!這確實有效。出於某種原因,我確信自己手機驗證不完整,直到您使用電話憑據登錄。但是,使用該電話憑證登錄的行爲意味着會根據電話號碼創建新用戶,並且我無法再將該電話憑證鏈接到其他現有用戶。所以我希望linkWithCredential調用都會驗證smsToken(這是該憑證的一部分),然後將其鏈接到現有用戶。我可以確認鏈接的作品。 – Elrondy

+0

@bojeil我有一個問題,我可以做以上過程有不同的電話驗證廣告登錄VC。?任何簡單的方法。 – MRizwan33

+0

什麼是「用於手機驗證廣告的VC」? – bojeil