我想获取集合中每个文档的ID。我尝试了此代码,但它无限次数地返回单个文档ID。您能否建议更正或替代方法
getrequest() {
linkref.document(uuid).
collection("Requests").getDocuments().then((value) async{
value.documents.forEach((doc) {
user.add(doc.documentID);
});},);
return ListView.builder(
itemBuilder: (BuildContext cntxt, int index){
return Text(user[index]);
});
}
在文档中有一个集合,而在该集合中我还有其他文档。我想检索所有文档ID
这是我的消防站的屏幕截图
答案 0 :(得分:1)
Firestore.instance
.collection('Links')
.document(docID)
.collection('Requests')
.snapshots();
答案 1 :(得分:1)
当前,firestore中只有一个文档。我建议您添加多个文档,然后测试此命令。可以使用snapshot
来获取Sandeep建议的使用
Firestore.instance
.collection('Links')
.document(docID)
.collection('Requests')
.snapshots();
通过查询集合中的文档,您可以通过一个请求检索多个文档。默认情况下,Cloud Firestore会按文档ID升序检索满足查询条件的所有文档,但是您可以对返回的数据进行排序和限制。要使用where()
有条件地检索文档,然后使用get
更多内容可以在文档here
中找到要使用ListView构建器,我建议使用StreamBuilder这样的东西:
StreamBuilder<DocumentSnapshot>(
stream: Firestore()
.collection('homepage')
.document(widget.user.uid)
.collection('h')
.document(todaysDate())
.snapshots(),
builder: (context, snapshot) {
if (snapshot.data != null) {
snapshot.data.data.forEach((index, individualDetail) {
cardDetails[index] = individualDetail;
});
}
return cardDetails == null
? CircularProgressIndicator()
: ListView.builder(
itemBuilder: (context, index) {
return HomepageCards(
user: widget.user,
cardDetails:
cardDetails[cardDetails.keys.toList()[index]],
);
},
itemCount: (cardDetailKeys == null
? 0
: cardDetailKeys.length),
);
},
)
这是我的代码的一部分,但是StreamBuilder
也对您来说很相似。