使用Email & Password更新Firebase匿名用户。

人们可以匿名登录我的应用。

FirebaseAuth.instance.signInAnonymously();

一旦进入,他们就会有一个小指示器提醒他们 如果他们想在不同的手机上保存自己的数据,他们就需要登录。对于谷歌认证来说,是这样的。

Future<void> anonymousGoogleLink() async {
  try {
    final user = await auth.currentUser();
    final credential = await googleCredential();

    await user.linkWithCredential(credential);
  } catch (error) {
    throw _errorToHumanReadable(error.toString());
  }
}

Where googleCredential 是。


Future<AuthCredential> googleCredential() async {
  final googleUser = await _googleSignIn.signIn();

  if (googleUser == null) throw 'User Canceled Permissions';

  final googleAuth = await googleUser.authentication;
  final signInMethods = await auth.fetchSignInMethodsForEmail(
    email: googleUser.email,
  );

  if (signInMethods.isNotEmpty && !signInMethods.contains('google.com')) {
    throw 'An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.';
  }

  return GoogleAuthProvider.getCredential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );
}

现在我想做同样的事情 但要把当前的匿名账户与电子邮件和密码认证联系起来。

EDIT

在写这个的时候发现了一个可能的解决方案 留给其他人可能看到。欢迎纠正我的观点。

解决方案:

FirebaseUser 对象 updatePassword 有这个doc字符串。

/// Updates the password of the user.
///
/// Anonymous users who update both their email and password will no
/// longer be anonymous. They will be able to log in with these credentials.
/// ...

你应该可以同时更新两个版本,然后他们就会被认证为普通用户。对我来说,这看起来像。

Future<void> anonymousEmailLink({
  @required FirebaseUser user,
  @required String email,
  @required String password,
}) async {
  try {
    await Future.wait([
      user.updateEmail(email),
      user.updatePassword(password),
    ]);
  } catch (error) {
    throw _errorToHumanReadable(error.toString());
  }
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

PowerShell 7的 "Get-Package "命令没有返回任何结果。PowerShell 5 返回同一台计算机上的软件包列表。

2022-9-13 15:46:39

未分类

如何在Laravel中获取每个集合的最后一个数据?

2022-9-13 15:46:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索