android - 如何使用FirebaseUserMetadata检查新用户?

标签 android firebase flutter dart

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

  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获取此数据?

谢谢。

最佳答案

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

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

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

关于android - 如何使用FirebaseUserMetadata检查新用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61122187/

相关文章:

java - 无法在 Android 中显示来自 Firebase 实时数据库的随机数据

dart - 在 Flutter 中导航后无法关注新页面中的 TextField

firebase - Flutter:如何在字段中显示用户列表?

java - BitmapFactory解码()的Android位图是否包含透明信息?

android - TextInput 在 android 中不起作用 react native

java - android 内部结构和内存/处理器限制?

javascript - 在继续之前,如何等待异步调用的 .map() 完成?

android - 删除行后 SQLite id 行不遵循顺序

javascript - 使用字符串对象的 Firebase 更新

flutter - 如何在 flutter 上的列小部件内添加选项卡