我想带出模型集合的文档 ID '1004'。我该怎么做? 我只知道集合和文档 ID '1004'。
错误代码:
DocumentSnapshot _model = await carCollectionRef
.doc()
.collection(USER_CAR_COLLECTION)
.doc()
.collection(MODEL_COLLECTION)
.doc('1004')
.get();
答案 0 :(得分:0)
不是从 Firestore
获取数据的理想方式。但这就是您获得它的方式。
foo() async {
Map<String, dynamic> myData;
await carCollectionRef
.get()
.then((snapshot) => snapshot.docs.forEach((element) {
if (element.exists) {
carCollectionRef
.doc(element.id)
.collection('USER_CAR_COLLECTION')
.get()
.then((snapshot2) => snapshot2.docs.forEach((element2) {
if (element2.exists) {
carCollectionRef
.doc(element.id)
.collection('USER_CAR_COLLECTION')
.doc(element2.id)
.collection('MODEL_COLLECTION')
.doc('1004')
.get()
.then((value) => {
if (value.exists) {myData = value.data()}
});
}
}));
}
}));
print(myData);
}
答案 1 :(得分:0)
我不是 100% 确定理解您的问题,但您似乎需要在 model
集合上使用 Collection Group query。
为此,您需要将每个模型文档的 ID 保存在该文档的一个字段中,以便按照以下几行编写查询:
Firestore.instance.collectionGroup('moodels').where('docId', isEqualTo: '1004').get()
.then((QuerySnapshot querySnapshot) => {...});
请注意,对于 ALL Cars
和 UserCars
,您将获得 ID == 1004 的模型文档。但是在不知道整个文档路径的情况下,没有其他方法可以仅通过其 ID 在子集合中查找文档。