Firebase无法更改displayName,displayName在任何情况下都为空

Firebase无法更改displayName,displayName在任何情况下都为空,firebase,flutter,dart,google-cloud-firestore,firebase-authentication,Firebase,Flutter,Dart,Google Cloud Firestore,Firebase Authentication,无法使用wait FirebaseAuth.instance添加更多用户信息 .createUserWithEmailAndPassword(电子邮件:\电子邮件,密码:\密码)功能 signup.dart文件的一部分: String\u电子邮件、\u密码、\u姓名; final formkey=new GlobalKey()` 未来注册()异步{ if(formkey.currentState.validate()){ formkey.currentState.save(); 试一试{ 等待F

无法使用
wait FirebaseAuth.instance添加更多用户信息
.createUserWithEmailAndPassword(电子邮件:\电子邮件,密码:\密码)功能

signup.dart
文件的一部分:

String\u电子邮件、\u密码、\u姓名;
final formkey=new GlobalKey()`
未来注册()异步{
if(formkey.currentState.validate()){
formkey.currentState.save();
试一试{
等待FirebaseAuth.instance
.createUserWithEmailAndPassword(电子邮件:\电子邮件,密码:\密码);
FirebaseUser FirebaseUser=等待FirebaseAuth.instance.currentUser();
Firestore.instance
.收集(“用户”)
.document(firebaseUser.uid)
.setData({“name”:_name});
等待firebaseUser.reload();
firebaseUser=等待FirebaseAuth.instance.currentUser();
印刷品(
“${firebaseUser.uid},${firebaseUser.email},${firebaseUser.displayName},$\此用户已创建的密码------”);
}捕获(e){
打印(${e.message}消息--------------------------------------------);
}
}否则{
打印(“出了问题”);
}
}

我尝试了很多方法,但仍然没有结果

您正在Firestore中保存数据,并尝试从Firebase Auth获取名称。这是两项服务。不要尝试使用firestore,你能做的是

    FirebaseUser firebaseUser = await FirebaseAuth.instance.currentUser();
    var userUpdateInfo = UserUpdateInfo();
    userUpdateInfo.displayName = _name;
    firebaseUser.updateProfile(userUpdateInfo);
    await firebaseUser.reload();
    firebaseUser = await FirebaseAuth.instance.currentUser();

您正在Firestore中保存数据,并尝试从Firebase Auth获取名称。这是两项服务。不要尝试使用firestore,你能做的是

    FirebaseUser firebaseUser = await FirebaseAuth.instance.currentUser();
    var userUpdateInfo = UserUpdateInfo();
    userUpdateInfo.displayName = _name;
    firebaseUser.updateProfile(userUpdateInfo);
    await firebaseUser.reload();
    firebaseUser = await FirebaseAuth.instance.currentUser();

使用方法创建帐户后。createUserWithEmailAndPassword通过将用户的值传递给另一个类

final FirebaseAuth _auth = FirebaseAuth.instance;

  //user object based on firebase
  User _userFromFirebase(FirebaseUser user){
    return user != null ? User(uid: user.uid):null;
  }

Future loginWithEmailAndPass(String email,String password)async{
    try{
      AuthResult result = await _auth.signInWithEmailAndPassword(email: email, password: password);
      FirebaseUser user = result.user;
      return _userFromFirebase(user);
    }catch(e){
      print(e.toString());
      return null;
    }
  }
通过创建新的dart文件,将user的值传递给新类

class User{
  final String uid;

  User({this.uid});
}
在主页中包含该dart文件作为用户名

有关指导,请参阅本教程。

使用方法创建帐户后。createUserWithEmailAndPassword通过

final FirebaseAuth _auth = FirebaseAuth.instance;

  //user object based on firebase
  User _userFromFirebase(FirebaseUser user){
    return user != null ? User(uid: user.uid):null;
  }

Future loginWithEmailAndPass(String email,String password)async{
    try{
      AuthResult result = await _auth.signInWithEmailAndPassword(email: email, password: password);
      FirebaseUser user = result.user;
      return _userFromFirebase(user);
    }catch(e){
      print(e.toString());
      return null;
    }
  }
通过创建新的dart文件,将user的值传递给新类

class User{
  final String uid;

  User({this.uid});
}
在主页中包含该dart文件作为用户名

有关指导,请参阅本教程。

我没有得到我要做的事情。在视频中没有创建更多字段的用户。这是一个播放列表。。。。你可以跳过其中的一些内容转到你的部分…我没有得到我要做的事情。这与在视频中创建具有更多字段的用户不同。这是一个播放列表。。。。你可以跳过其中的一些内容转到你的角色。。。