如何添加小吃店?
How do I add snackbar?
我不知道为什么 Snackbar 不显示 up.But 当我删除 firebaseauth 的功能时它显示了 snackbar。
代码:
MaterialButton(
onPressed: (){
try{
FirebaseAuth.instance.createUserWithEmailAndPassword(
email: emailController.text, password: passwordController.text).then((signedUser) {
userCollection.doc(signedUser.user?.uid).set({
'username': usernameController.text,
'email': emailController.text,
'password': passwordController.text,
'uid': signedUser.user?.uid,
});
Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (_) => HomeScreen()));
});
} catch(e) {
print(e.toString());
var snackbar = SnackBar(content: Text(e.toString()));
ScaffoldMessenger.of(context).showSnackBar(snackbar);
}
},
elevation: 0,
minWidth: MediaQuery.of(context).size.width,
height: 40.h,
child: Text("Buat akun"),
textColor: Colors.white,
color: Colors.blue,
)
您正在使用 then,因此错误不会在 catch 部分被捕获。
您应该删除 try catch 块并使用 catchError() 捕获错误,而不是像这样:
FirebaseAuth.instance.createUserWithEmailAndPassword(
email: emailController.text, password: passwordController.text).then((signedUser) {
userCollection.doc(signedUser.user?.uid).set({
'username': usernameController.text,
'email': emailController.text,
'password': passwordController.text,
'uid': signedUser.user?.uid,
});
Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (_) => HomeScreen()));
}).catchError((e) {
print(e.toString());
var snackbar = SnackBar(content: Text(e.toString()));
ScaffoldMessenger.of(context).showSnackBar(snackbar);
});
我不知道为什么 Snackbar 不显示 up.But 当我删除 firebaseauth 的功能时它显示了 snackbar。
代码:
MaterialButton(
onPressed: (){
try{
FirebaseAuth.instance.createUserWithEmailAndPassword(
email: emailController.text, password: passwordController.text).then((signedUser) {
userCollection.doc(signedUser.user?.uid).set({
'username': usernameController.text,
'email': emailController.text,
'password': passwordController.text,
'uid': signedUser.user?.uid,
});
Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (_) => HomeScreen()));
});
} catch(e) {
print(e.toString());
var snackbar = SnackBar(content: Text(e.toString()));
ScaffoldMessenger.of(context).showSnackBar(snackbar);
}
},
elevation: 0,
minWidth: MediaQuery.of(context).size.width,
height: 40.h,
child: Text("Buat akun"),
textColor: Colors.white,
color: Colors.blue,
)
您正在使用 then,因此错误不会在 catch 部分被捕获。
您应该删除 try catch 块并使用 catchError() 捕获错误,而不是像这样:
FirebaseAuth.instance.createUserWithEmailAndPassword(
email: emailController.text, password: passwordController.text).then((signedUser) {
userCollection.doc(signedUser.user?.uid).set({
'username': usernameController.text,
'email': emailController.text,
'password': passwordController.text,
'uid': signedUser.user?.uid,
});
Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (_) => HomeScreen()));
}).catchError((e) {
print(e.toString());
var snackbar = SnackBar(content: Text(e.toString()));
ScaffoldMessenger.of(context).showSnackBar(snackbar);
});