首页 > 解决方案 > 如何使用 FirebaseUserMetadata 检查新用户?

问题描述

我想使用 Firebase 检查用户是否是新用户。我有一个用谷歌登录的按钮

  Future<FirebaseUser> googleSignIn() async {

try {
  loading.add(true);
  GoogleSignInAccount googleSignInAccount = await _googleSignIn.signIn();
  GoogleSignInAuthentication googleAuth =
  await googleSignInAccount.authentication;

  final AuthCredential credential = GoogleAuthProvider.getCredential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );


  FirebaseUser user = (await _auth.signInWithCredential(credential)).user;


  loading.add(false);
  return user;
} catch (error) {
  return error;
}

}

如果我添加 FirebaseUserMetadata 我有这个:“Future”类型的值不能分配给“FirebaseUserMetadata”类型的变量。尝试更改变量的类型,或将右侧类型转换为“FirebaseUserMetadata”。

我想我要做的是比较来自 FirebaseUserMetadata 的 lastSignInTimestamp 和 creationTimestamp 。

FirebaseUser user = (await _auth.signInWithCredential(credential)).user;
if(new user){
updateDataNewUser(...)
}
else{
updateDataUser(...)
}

在我的情况下,如何从 FirebaseUserMetadata 获取这些数据?

谢谢你。

标签: androidfirebaseflutterdart

解决方案


要检查用户是否是新用户,请尝试以下操作:

AuthResult user = await auth.signInWithCredential(credential);
print(user.additionalUserInfo.isNewUser);

isNewUser返回用户是新用户还是现有用户


推荐阅读