我在Firestore中有这样的数据库结构:

这是什么里面的地方

如何在flutter中进行查询以获取Places子集合中的所有数据以及用户集合中的名称,此代码可从每个用户集合中获取所有places子集合数据:
Future<List<PlaceModel>> getPlaces() async {
List<PlaceModel> placesList = [];
// get all docs from user collection
var users = await udb.get();
for( var uid in users.docs) {
var userData = await udb.doc(uid.id).get();
var userPlaces = await udb.doc(uid.id).collection(placeTable).get();
userPlaces.docs.forEach((place) {
placesList.add(PlaceModel.fromMap(place.data()));
});
}
return placesList;
}发布于 2020-11-24 19:36:55
您还可以使用where()或orderby()方法来获取具有某些规则的数据。
Firestore.instance
.collection("users")
.document(uid.id)
.collection(placeTable)
.where('fieldName', isEqualTo:name )
.snapshots()发布于 2020-11-24 22:57:02
单个查询只能访问单个集合或具有相同名称的一组集合。Firestore查询是浅层的,不会从子集合中读取数据。如果需要子集合中的数据,则必须执行额外的查询才能读取数据。
https://stackoverflow.com/questions/64984453
复制相似问题