Мне было интересно, есть ли способ получить подколлекцию после использования .where
Это мой формат базы данных
Firestore.instance.collection("Users")
.where("followers", arrayContains: id) //id is the users id
//He i want to get the collection of posts that the particular user has posted
Подколлекции находятся в отдельном документе, а запрос идентифицирует группу документов. Если вы знаете, что запрос идентифицирует только один документ, клиент Firestore не знает об этом, и даже если бы он знал, он не знает полного пути к этому документу.
Сначала вам нужно выполнить запрос, затем получить отдельные документы, а затем вы можете получить подколлекцию каждого документа.
Я пытаюсь сделать что-то подобное -
События -> widget.mydatahere (документ) -> eventFood (подколлекция) -> selectedFood (документ в подколлекции) -> selectedFoodRecipe (значение foodRecipe).
Это заставит его работать, однако проблема здесь в том, что даже setstate не обновит пользовательский интерфейс, журналы консоли в порядке, но пользовательский интерфейс не обновляется.
Future<String> loadmyFoodItem() async {
await Firestore.instance
.collection('Events')
.where("eventName", isEqualTo: widget.mydatahere)
.getDocuments()
.then((onValue){
onValue.documents.forEach((f){
Firestore.instance.collection('Events').document(f.documentID)
.collection('eventFood')
.where('foodName', isEqualTo: selectedFood)
.getDocuments()
.then((querySnapshot){
querySnapshot.documents.forEach((result){
selectedFoodRecipe = result.data['foodRecipe'];
print("selectedFoodRecipe $selectedFoodRecipe");
});
});
});
});
return 'ready';
}