У меня есть коллекция под названием «сообщения». Сообщения имеют подколлекцию под названием «обратная связь».
когда пользователь дает отзыв о публикации, его идентификатор и комментарий добавляются в под коллекцию отзывов.
Теперь я хочу найти сообщения, которых у пользователя нет дан отзыв.
В предыдущем сообщении мне сообщили, что это невозможно сделать через firebase. Поэтому я попытался сделать это на стороне клиента.
List<String> postIds = [];
await Firestore.instance
.collection(APIPath.posts())
.getDocuments()
.then((postDocs) async {
postDocs.documents.forEach((doc) async {
print(doc.documentID);
var feedbackDocs = await Firestore.instance
.collection('posts')
.document(doc.documentID)
.collection('feedback')
.getDocuments();
var givenFeedback = false;
feedbackDocs.documents.forEach((feedbackDoc) async {
});
print(givenFeedback);
if (!givenFeedback) {
postIds.add(doc.documentID);
}
});
});
print(postIds);
Моя идея заключалась в go через все сообщения и поиск отзывов для каждого сообщения. Если текущий пользователь «uid» отправил какое-либо сообщение, удалите это сообщение.
Но по какой-то причине я не получаю никаких данных в свой массив. Несмотря на то, что я не дал никаких отзывов ни по одному из сообщений.
Я добавил 2 оператора печати.
1-й оператор печати 13 идентификаторов документов.
теперь ни один из этих почтовых документов не имеет отзывов. Так что я должен получить 13 ложных срабатываний. Но я получаю только 2 ложных вывода.
Я ожидал получить идентификатор почтового документа, а затем ложный вывод, подобный этому;
91ew6yx3yWaWGme31FTB
fasle
Aqq5HctlLudFFvqN8prm
false
...
Я получаю; Сначала я получаю 13 идентификаторов документов, затем 2 таких ложных вывода
91ew6yx3yWaWGme31FTB
Aqq5HctlLudFFvqN8prm
...
v39SkTkL8PwMOyPAE2QG
false
false
Похоже, что часть кода не запускается ... Есть ли правильный способ расположить этот код?