当用户输入错误的凭证时,零食条应该显示登录失败,当正确的页面应该显示成功登录的零食条.我已经使用firebase来验证。
final _formKey = GlobalKey<FormState>();
TextEditingController _emailLoginFormTextEditingController = new TextEditingController();
TextEditingController _passwordLoginFormTextEditingController = new TextEditingController();
void initState() {
super.initState();
}
_signInUsingFirebase(String email, String password) {
FirebaseAuth firebaseAuth = FirebaseAuth.instance;
firebaseAuth.signInWithEmailAndPassword(email: email, password: password)
.then((AuthResult authResult) {
FirebaseUser user = authResult.user;
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => HomePage(email: email, userid: user.uid,),
));
}).catchError((error) {
debugPrint(error);
});
}
Widget _loginPageSaffoldBody(BuildContext context) {
return Form(
key: _formKey,
child: ListView(
padding: EdgeInsets.all(32),
children: <Widget>[
TextFormField(
controller: _emailLoginFormTextEditingController,
),
TextFormField(
controller: _passwordLoginFormTextEditingController,
),
RaisedButton(
onPressed: () {
// If statement is validating the input fields.
if (_formKey.currentState.validate()) {
_signInUsingFirebase(_emailLoginFormTextEditingController.text,
_passwordLoginFormTextEditingController.text);
Scaffold.of(context).showSnackBar( //Snackbar for Succesfull
SnackBar(
content: Text(
"Succesfull",
),
),
);
}
else{
Scaffold.of(context).showSnackBar( //Snackbar for unsuccesfull
SnackBar(
content: Text(
"Unsuccesfull",
),
),
);
}
},
child: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Icon(
Icons.lock_open,
),
SizedBox(width: 4),
Text(
"Submit",
),
],
),
), // Submit Button
],
),
);
}
一个有点脱口而出的问题,我也想保持用户登录,一旦他们输入凭证,直到他们登录,我想使用共享的偏好,但无法理解如何,如果u可以提供任何链接可能会帮助谢谢你!。
首先,查看官方的 文件,其中一些基本的例子由Google自己提供。
在你的情况下,检索Firebase登录的响应,并将其推送给单独的服务,这将创建所需的小吃店。
对于保存的登录--是的,你可以使用 shared_preferences 并分别保存两个字符串--一个用于登录,一个用于密码。当最初登录时,保存这些,当用户再次打开一个应用时,首先检查shared_preferences是否存在需要数据的情况,如果存在--就推送给功能
欢迎提出任何问题:3
声明一个关键:- key:_scaffoldKey,
在脚手架中
声明 final _scaffoldKey = GlobalKey<ScaffoldState>();
然后简单地在 .catchError((error)
和 .then((AuthResult authResult)
final snackBar = SnackBar(content: Text("Succesfully LoggedIn"));
_scaffoldKey.currentState.showSnackBar(snackBar);