#android #firebase #dart #flutter #google-cloud-firestore
#Android #firebase #dart #флаттер #google-облако-firestore
Вопрос:
Мне было интересно, возможно ли «добавить» запросы firebase к отдельному потоку внутри flutter. Объедините все потоки в один поток.
В данный момент код получает всех пользователей, за которыми следует учетная запись, затем перебирает каждый идентификатор пользователя и получает их сообщения. Мне было интересно, могу ли я объединить все эти запросы сообщений в один основной поток
Future<Stream<QuerySnapshot>> getfollowing() async{
DocumentSnapshot userQuery = await Firestore.instance.collection('Users').document(id).get();//Gets who the user follows
Stream<QuerySnapshot> fullprofilesdata ;
for (String user in userQuery["following"]) {
QuerySnapshot personQuery = await Firestore.instance.collection('Users')
.document(user).collection("posts")
.getDocuments();
//fullprofilesdata.append(personQuery);
}
return fullprofilesdata;
}
Ответ №1:
Я сижу с той же проблемой, но я думаю, что вы на правильном пути. Все, что вам нужно изменить, это цикл for.
Вы устанавливаете один и тот же снимок запросов для разных данных (personQuery).
Вместо этого создайте personQuery QuerySnapshot над циклом.
Есть способ добавить к снимку запросов с помощью :
personQuery.documents.add();
Также не используйте getDocuments()
, поскольку это приведет только к получению данных, но не потока.
Используйте snapshot()
вместо этого.
Надеюсь, это немного помогло 🙂
Удачи, ребята, программисты.