[英]Android firebase auth: Link anonymous account with manual user still creating 2 accounts on firebase console
下面是重现该问题的步骤:
创建一个匿名帐户
创建一个手动帐户
mFirebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, task - > {
if (task.isSuccessful()) {
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
linkWithAnonymousAccount(credential);
} else {
hideProgressDialog();
String msg = task.getException().getLocalizedMessage();
Utils.showDialogMessage(mContext, msg);
}
});
private void linkWithAnonymousAccount(final AuthCredential credential) {
mFirebaseAuth.getCurrentUser().linkWithCredential(credential)
.addOnCompleteListener(this, task - > {
if (task.isSuccessful()) {
callUpdateUserApi();
} else {
hideProgressDialog();
Utils.showDialogMessage(mContext, task.getException().getLocalizedMessage());
}
});
}
当前结果:在Firebase控制台上创建了2个帐户,匿名帐户和手动帐户
预期结果:匿名帐户应与手动帐户合并。
Firebase版本
compile "com.google.android.gms:play-services-auth: '11.4.2'
它适用于社交帐户,但不适用于手动帐户。 请指教
您无法将2个现有帐户与Firebase Auth关联。 2个凭据之一必须是新的,并且尚未在Auth数据库中。 您似乎正在登录一个匿名用户并创建一个电子邮件/密码用户,然后尝试链接它们。 这将失败,因为您无法链接2个具有不同UID的现有用户。 在这种情况下,您必须手动将数据从一个复制到另一个,然后删除过时的用户。
您应该做的不是createUserWithEmailAndPassword
。 您signInAnonymously
匿名用户,然后直接在电子邮件/密码凭证链接到这一点。
// Initialize the email/pass credential and directly link it to the
// current anonymous user already signed in.
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
mFirebaseAuth.getCurrentUser().linkWithCredential(credential)...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.