flutter Firestore 数据检查并导航到新屏幕

时间:2021-04-19 17:17:35

标签: firebase flutter

我正在尝试使用 Firestore 构建一个 Flutter 应用程序。 我正在尝试编写一个代码,其中如果一个文档存在于 Firestore 的集合中,那么用户会转到一个新屏幕,否则他会转到另一个屏幕 FirebaseAuth auth = FirebaseAuth.instance;

class check extends StatelessWidget {
  static const String routeName = '/checkif';
  @override
  Widget build(BuildContext context) {
    final firebaseUser = context.watch<User>();
    final snapshot = fb.collection("Profile").doc(firebaseUser.uid).get();

   if (snapshot == null) {
    return addparentcompany();
    } else{
      return homepage();}



  }
}

即使快照为空,也会被路由到主页而不是母公司

1 个答案:

答案 0 :(得分:1)

因为获取数据需要时间,您将不得不在检索数据时等待数据。因此,您必须使用 FutureBuilder

body: FutureBuilder(
        future: fb.collection("Profile").doc(firebaseUser.uid).get(),
        builder: (context, snapshot) {

          if (snapshot.connectionState == ConnectionState.waiting) {
             return addparentcompany();
          } else {
            if (snapshot.data.data() == null) {
              return Center(
                child: Text('An error occured'),
              );
            } else return homepage();
          }
        },
      ),