当用户在Flutter输入凭证时,如何显示有效或无效的小吃条?

问题描述 投票:0回答:1

当用户输入错误的凭证时,零食条应该显示登录失败,当正确的页面应该显示成功登录的零食条.我已经使用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可以提供任何链接可能会帮助谢谢你!。

flutter flutter-layout
1个回答
0
投票

首先,查看官方的 文件,其中一些基本的例子由Google自己提供。

在你的情况下,检索Firebase登录的响应,并将其推送给单独的服务,这将创建所需的小吃店。

对于保存的登录--是的,你可以使用 shared_preferences 并分别保存两个字符串--一个用于登录,一个用于密码。当最初登录时,保存这些,当用户再次打开一个应用时,首先检查shared_preferences是否存在需要数据的情况,如果存在--就推送给功能

欢迎提出任何问题:3


0
投票

声明一个关键:- key:_scaffoldKey, 在脚手架中

声明 final _scaffoldKey = GlobalKey<ScaffoldState>();

然后简单地在 .catchError((error).then((AuthResult authResult)

final snackBar = SnackBar(content: Text("Succesfully LoggedIn"));
      _scaffoldKey.currentState.showSnackBar(snackBar);
© www.soinside.com 2019 - 2024. All rights reserved.