我在Firestore中有一个登录页面和一个集合,可以在其中保存有关用户的一些信息(例如,是否通过了登机屏幕)。下次我打开该应用程序时,我想检查用户是否通过了入职培训。如果他们这样做:我重定向到另一个屏幕;如果不是,则重定向到入职。

所有示例都在读取集合并获取所有文档,但是我只需要阅读一个我知道documentid的文档。

我试图获取这样的数据,但是没有用。

class LandingPage extends StatelessWidget {
  // LandingPage({@required this.auth});
  // final AuthBase auth;
     @override
      Widget build(BuildContext context) {
        final auth = Provider.of<AuthBase>(context, listen: false);
        return StreamBuilder<User>(
          stream: auth.onAuthStateChanged,
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.active) {
              User user = snapshot.data;
                  if (user == null) {
                return ChooseLanguage(
                    //     auth: auth,
                    );
              }

    // he i need to do a call to a ducment in the firestore
    //if the retuen is true then i go to page 1 else go to page 2

            } else {
              return Scaffold(
                body: Center(child: CircularProgressIndicator()),
              );
            }
          },
        );
      }
    }

我是否必须做-iama初学者入门

最佳答案

要获取一份文档,请执行以下操作:

getData()async{
await Firestore.instance.collection("users").document(id).get().then((value){
      print(value.data['name']);
    });
}

您需要使用正确的collection名称,value.data将包含该文档的数据,您可以使用[]运算符进行访问。

根据您的编辑,您正在检查checkonboarding()是否为null,但是由于它返回的是Future,因此您需要使用await:
    void sendData()async{
        bool value = await checkonBoarding(user);
      if (value != null) {
            return Provider<Database>(
              create: (_) => new FireStoreDatabase(uid: user.uid),
              child: Dashboard(usr: user, auth: auth),
            );
          } else {
            return Provider<Database>(
              create: (_) => new FireStoreDatabase(uid: user.uid),
              child: Onboarding(usr: user, auth: auth),
            );
          }
       }

关于firebase - Flutter Firebase要求一份文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61365288/

10-09 18:43