我无法将匿名Firebase用户转换为具有电子邮件和密码的注册用户。
我的代码看起来像这样:
Future linkAnonymousAccount({
required String email,
required String password,
}) async {
try {
await _auth.currentUser!.linkWithCredential(
auth.EmailAuthProvider.credential(email: email, password: password),
);
// await refreshUser();
} on auth.FirebaseAuthException catch (e) {
throw LinkAnonymousAccountException(e.code);
}
}
字符串EmailAuthProvider.credential
似乎创建了一个新用户(带有新的uuid和所有内容),而不是转换当前的匿名用户。
创建匿名用户后:
Future signInAnonymously() async {
try {
await _auth.signInAnonymously();
} on auth.FirebaseAuthException catch (e) {
throw SignInException(e.code);
}
}
型
然后调用上面的linkAnonymousAccount
-方法,我在firebase控制台中得到以下结果:
x1c 0d1x的数据
但是这样我就丢失了所有的用户数据,比如 displayName 和 photoUrl,还有我数据库中的所有数据(由于不同的uuid)。
我无法找到解决方案,也无法解释为什么会发生这种情况。
我发现了一个video,但情况并非如此,匿名用户实际上被转换了。但是我使用了和视频中的人相同的代码,得到了不同的结果。
我错过了什么吗?有人能解释一下吗?
1条答案
按热度按时间bgibtngc1#
是的,这是可能的-有一个内置的方法
例如,用户匿名登录,然后开始Apple登录。
字符串
因此,您将拥有一个使用Apple登录的用户,其ID与Anonymous用户相同。