如何使用Flutter for Web检查Firestore收集字段?

时间:2019-11-27 18:58:23

标签: firebase flutter google-cloud-firestore flutter-web

我使用Flutter开发Web应用程序,并使用Firestore作为后端。用户登录时,还必须通过以下方式登录该公司:

  • 从Firestore(正在运行)流式传输的下拉列表中的“选定公司”
  • 输入公司密码-将对照存储在集合中的密码进行检查(无效) -然后按下凸起的按钮以检查凭据

如果引脚正确,则应将用户导航到HomeScreen(),否则,将弹出错误消息。

下面是getCompanyPin()方法(文档ID也是公司名称):

  Future<String> getCompanyPin(String companyName) async {
    String pin;
    await store
        .collection('companies') 
        .doc(companyName)
        .get()
        .then((val) {
          pin = val.data()['Company Pin'];  
    });

    return pin;
  }

下面是调用getCompanyPin()然后检查引脚是否正确的方法

  void checkPin(newPin, pin) {
    if (newPin == pin) {
      Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => HomeScreen()),
      );
    } else {
      //error;
    }
  }

下面是RaisedButton,按下该按钮时应触发检查引脚的过程:

                                    Padding(
                                      padding: const EdgeInsets.all(8),
                                      child: Material(
                                          child: RaisedButton(
                                              textColor: Colors.white,
                                              color: Colors.blue,
                                              child: Text(
                                                  "Company Log In"),
                                              onPressed: () async {
                                                String newPin =
                                                    await getCompanyPin(
                                                        _selectedCompany);


                                                if (_logFormKey
                                                    .currentState
                                                    .validate()) {
                                                  _logFormKey
                                                      .currentState
                                                      .save();

                                                      checkPin(newPin, _pin);
                                                }
                                              })),
                                    )

0 个答案:

没有答案