2017-09-19 3 views
0

Une question sur l'authentification firebase pour l'authentification par numéro de téléphone.La connexion complète est-elle requise pour vérifier un numéro de téléphone à l'aide de Firebase Phone Auth?

Je me demandais s'il était possible de lier un «fournisseur de téléphone» pour dire un fournisseur d'authentification Google. Il n'y a pas de mention explicite dans les docs - https://firebase.google.com/docs/auth/android/account-linking. La chose qui m'a fait me gratter la tête est - les docs de fournisseur d'authentification multiple de lien parlent de commencer à s'authentifier avec le nouveau fournisseur (fournisseur de téléphone) que vous voulez lier au fournisseur existant (fournisseur de google), mais en arrêtant court d'appeler "FirebaseAuth.signInWithXXX".

Donc, en théorie qui fonctionnerait comme 1. L'utilisateur se connecte via google (google fournisseur idp) 2. L'utilisateur lance la auth téléphone (fournisseur numéro de téléphone) - et reçoit un message SMS. 3. Le SMS devrait déclencher une vérification automatique dans certains cas ou il tape dans le code à 6 chiffres du message SMS 4. Mais sur la base des docs sur le lien de compte, plutôt que d'appeler FirebaseAuth.signInWithXXX ici, nous pouvons appeler FirebaseUser.linkWithCredential (PhoneAuthCredential).

Alors je me demandais si une vérification de numéro de téléphone est considérée comme complète sans une connexion explicite avec PhoneAuthCredential?

Répondre

1

Vous pouvez lier un PhoneAuthCredential à un utilisateur existant, dans votre cas, à un utilisateur disposant d'un GoogleAuthProvider.

Après vous être connecté à l'utilisateur avec Google. Vous passez ensuite par PhoneAuthProvider.getInstance().verifyPhoneNumber(phoneNumber, ...) Cela résoudrait avec un PhoneAuthCredential ou un ID de vérification. Vous pouvez ensuite demander le code SMS et instancier un PhoneAuthCredential via PhoneAuthProvider.getCredential.

Vous pouvez ensuite lier ce diplôme à l'currentUser: currentUser.linkWithCredential(phoneAuthCredential)

+0

Merci bojeil! Cela fonctionne en effet. Pour une raison quelconque, je me suis convaincu que la vérification du téléphone n'est pas terminée jusqu'à ce que vous vous connectez avec les informations d'identification du téléphone. Mais l'acte même de se connecter avec ce titre de téléphone, signifiait qu'un nouvel utilisateur est créé par rapport au numéro de téléphone et je ne peux plus lier ce justificatif de téléphone à un autre utilisateur existant. J'espère donc que l'appel linkWithCredential vérifie à la fois le smsToken (qui fait partie de ces informations d'identification) ET le lie à un utilisateur existant. Je peux confirmer que la liaison fonctionne. – Elrondy

+0

@bojeil J'ai une question comment je peux faire le processus ci-dessus ayant différents VC pour la vérification de la publicité de l'annonce de téléphone. aucun moyen facile. – MRizwan33

+0

Qu'est-ce que "VC pour l'annonce de vérification téléphonique"? – bojeil