无法通过await FirebaseAuth.instance
.createUserWithEmailAndPassword(email: _email, password: _password);
函数向我添加更多用户信息吗?
signup.dart
文件的一部分:
String _email, _password, _name;
final formkey = new GlobalKey<FormState>();`
Future<void> registered() async {
if (formkey.currentState.validate()) {
formkey.currentState.save();
try {
await FirebaseAuth.instance
.createUserWithEmailAndPassword(email: _email, password: _password);
FirebaseUser firebaseUser = await FirebaseAuth.instance.currentUser();
Firestore.instance
.collection("users")
.document(firebaseUser.uid)
.setData({"name": _name});
await firebaseUser.reload();
firebaseUser = await FirebaseAuth.instance.currentUser();
print(
"${firebaseUser.uid},${firebaseUser.email},${firebaseUser.displayName} , $_password this user has been created-----");
} catch (e) {
print("${e.message} message--------------------------------------");
}
} else {
print("somthing went wrong");
}
}
我尝试了很多方法来做到这一点,但仍然没有结果
答案 0 :(得分:1)
您正在将数据保存在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();
答案 1 :(得分:-1)
使用方法 .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;
}
}
通过创建新的飞镖文件将用户的值传递给新类
class User{
final String uid;
User({this.uid});
}
在主页中包含该dart文件作为用户名。
请参阅本教程以获取指导。 https://youtu.be/Jy82t4IKJSQ?list=PL4cUxeGkcC9j--TKIdkb3ISfRbJeJYQwC