繁体   English   中英

Flutter Firestore 采集组

[英]Flutter Firestore Collection Group

我有一家collection公司,每家公司都有一名收款employee 我想创建一个查询以根据其文档 ID 检索特定员工。 你知道怎么做吗? 我正在考虑使用 collectionGroup("employee"),但找不到访问文档 ID 的方法。

Stream<UserModel> streamFirestoreUser() {
 return _db
        .collectionGroup('employee')
        .where("email", isEqualTo: emailController.text)
        .limit(1)
        .snapshots()
        .map((event) => UserModel.fromJson(event.docs.first.data()));
  }

尝试这样的事情:

FirebaseFirestore _firestore = FirebaseFirestore.instance;
final _controller = StreamController<QuerySnapshot>.broadcast();

_listener() {
    final stream = _firestore 
        .collection("company")
        .doc(_idCompany)
        .collection("employee")
        .snapshots(); //retrieve all clients

stream.listen((data) {
    _controller.add(data);
    });
}

@override
void initState() {
   super.initState();
   _listener();
}
@override
void dispose() {
    
  _controller.close();
}

...


body: StreamBuilder<QuerySnapshot>(
        stream: _controller.stream,
        builder: (context, snapshot) {
            switch (snapshot.connectionState) {
                    case ConnectionState.none:
                    case ConnectionState.waiting:
                        return //Message: loading;
                    case ConnectionState.active:
                    case ConnectionState.done:
                        if (snapshot.hasError) {
                            return //Message: error;
                        } else {
                            QuerySnapshot? querySnapshot = snapshot.data;
                            if (querySnapshot!.docs.length == 0) {
                                return //Message: no clients ;
                            } else {
                                return ListView.builder(
                                        itemCount: querySnapshot.docs.length,
                                        itemBuilder: (context, indice) {
                                        List<DocumentSnapshot> clients = querySnapshot.docs.toList();
                                        DocumentSnapshot item = clients[indice];

                                        return //Clients;
                         
                                        },
                                );
                            }
                        }
            }
        },
  ),

我希望能帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM