簡體   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