Web用Firebaseを使用すると、匿名ユーザーを正常に作成できます。新しいメール/パスワードユーザーを作成することもできます。電子メール/パスワードのユーザーに匿名ユーザーを変換しようとすると、しかし、私はエラーを取得: https://firebase.google.com/docs/auth/web/anonymous-authFirebase匿名ユーザーアカウントを恒久アカウントエラーに変換する
:
auth/provider-already-linked
User can only be linked to one identity for the given provider.
Firebaseセクションの下に、ここでの手順を文書化し、ここで「永久アカウントに匿名アカウントを変換します」アカウントリンクコードは次のとおりです。匿名ユーザーがサインインしている。
return firebase.auth().createUserWithEmailAndPassword(email, password).then(newUser => {
// Credential is being successfully retrieved. Note "any" workaround until typescript updated.
let credential = (<any>firebase.auth.EmailAuthProvider).credential(email, password);
firebase.auth().currentUser.link(credential)
.then(user => { return user; })
.catch(err => console.log(err)); // Returns auth/provider-already-linked error.
});
firebase.User.prototype.linkは推奨されていません。代わりにfirebase.User.prototype.linkWithCredentialを使用してください。 –
ありがとうございました! – TMSCH
この回答をお寄せいただきありがとうございます.Firebaseを使用しているクライアントのモバイルアプリでも同じロジックが適用されます。私はiOSアプリで同じ問題を抱えていましたが、このロジックによって修正されました。これに関するFirebaseの文書はあまり明確ではありません - (もし誰かがこれを読んでいれば)これを強調すべきです。 – Peza