Firebase, wie man mit phoneNumber erstelltes Konto verknüpft
✅ Ich kann Benutzer ihr Profil mit Handynummer aktualisieren verifyPhoneNumber
und aktualisieren lassencurrentUser.updatePhoneNumber
❌ Mein Problem tritt auf, wenn ich die Anmeldung per Telefon zulasse und ein NEUER BENUTZER versucht, sich mit einer Telefonnummer anzumelden. Es wird automatisch ein Konto erstellt.
Wenn ich die Nummer dann einem E-Mail-Konto zuordnen muss , gibt die oben beschriebene Methode einen credential-already-in-use
Fehler zurück.
Firebase empfiehlt die folgende Methode in der Dokumentation .
var credential = firebase.auth.PhoneAuthProvider.credential(confirmationResult.verificationId, code);
firebase.auth().signInWithCredential(credential);
Also habe ich dies zusammen gemacht linkWithCredential
, signInWithCredential gibt jedoch ein Ergebnis mit zurückresult.credential = null
// Sign in user with the account you want to link to
auth.signInWithCredential(credential).then(function(result) {
console.log("Sign In Success", result);
var currentUser = result.user;
return prevUser.linkWithCredential(result.credential) //this line doesn't work.
.then(function(linkResult) {
return auth.signInWithCredential(linkResult.credential);
})
}).catch(function(error) {
console.log("Sign In Error", error);
});
Da result.credential = null ist, kann ich nicht mit LinkWithCredential fortfahren.
Ich habe es auch versucht linkWithPhoneNumber
, aber es wird eine Validierungs-ID zurückgegeben, mit der ich das Konto immer noch nicht zusammenführen kann.
❓Kann ich wissen, wie ihr ein phoneNumber-Konto mit einem anderen Konto (Facebook / Google / E-Mail) zusammengeführt habt?
Antworten
Wenn Sie ein vorhandenes Konto mit einer Telefonnummer verknüpfen möchten, können Sie diese verwenden linkWithPhoneNumber
. Grundsätzlich rufen Sie nach der Anmeldung des Nutzers (z. B. bei Google) Benutzerinformationen ab und verknüpfen diesen Berechtigungsnachweis später mit der Telefonnummer. Ich fand ein Detail Antwort , die auf Ihre Frage ist ähnlich wie hier Link
Vielleicht so etwas wie
const confirmationResult = await firebase.auth().currentUser.linkWithPhoneNumber(phoneNumber, recaptcha);
//Prompt your user for the code they recieved via sms here
confirmationResult.confirm(code);
Wo haben Sie einen Benutzer, der sich über Benutzername / Passwort, Facebook Google usw. angemeldet hat? Würde das funktionieren?
Da Sie keine Bestätigungs-ID von Phone Linking erhalten, sondern ein Bestätigungsergebnis