我目前在登录时面临此错误消息,我的注册功能运行良好。但似乎不明白为什么我的登录一直带来这个错误。如果能指出我的错误来源,我将不胜感激。
void loginUser() async {
User user;
await _auth
.signInWithEmailAndPassword(email: email.text, password: password.text)
.then((value) {
setState(() {
loading = false;
});
return value;
}).catchError((error) {
Navigator.pop(context);
Get.defaultDialog(title: 'Error in Login');
});
if (user != null) {
readData(user).then((value) => Get.toNamed(homeRoute));
}
}
Future readData(User user) async {
FirebaseFirestore.instance
.collection('users')
.doc(user.uid)
.get()
.then((result) async {
await App.sharedPreferences.setString('uid', result.get('uid'));
await App.sharedPreferences.setString('email', result.get('email'));
await App.sharedPreferences.setString('fullname', result.get('fullname'));
await App.sharedPreferences.setString('bvn', result.get('bvn'));
});
}
这是我的注册功能
void _registerUser() async {
User user;
await _auth
.createUserWithEmailAndPassword(
email: email.text, password: password.text)
.then((value) {
user = value.user;
}).catchError((error) {
Navigator.pop(context);
Get.defaultDialog(title: 'Error in registration');
});
if (user != null) {
saveToFirestore(user).then((value) => Get.toNamed(homeRoute));
}
}
Future saveToFirestore(User user) async {
FirebaseFirestore.instance.collection('users').doc(user.uid).set({
'uid': user.uid,
'fullname': fullname.text.trim(),
'email': user.email,
'bvn': bvn.text
});
await App.sharedPreferences.setString('uid', user.uid);
await App.sharedPreferences.setString('email', user.email);
await App.sharedPreferences.setString('fullname', fullname.text);
await App.sharedPreferences.setString('bvn', bvn.text);
}
更改
User user;
await _auth
至User user = await _auth....
在您的FireStore查询中,使用
Future readData(User user) async {
FirebaseFirestore.instance
.collection('users')
.doc(user.user.uid) // instead of user.uid
.get()
任何有user.uid
的地方都将其更改为user.user.uid
。