Получить данные из пожарного магазина Firebase, используя флаттер - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь получить данные по следующему пути во Flutter из облачного Firestore, и у меня есть следующая структура

  1. подписчиков / {currentuser} / userFollowers / {user_id}
  2. users / user_id / user_details

Я пытаюсь получить подробную информацию обо всех подписчиках для текущего пользователя. Кто-нибудь может помочь?

Я смог получить первую часть по

DocumentSnapshot snapshot =
        await followersRef.document(currentUser.id).get();

Я не знаю, как l oop через все идентификаторы, чтобы получить их данные из пользовательских коллекций. Я пробовал следующий код, но безуспешно.

snapshot.data.forEach((key, value) async {
      DocumentSnapshot snapshot2 =
          await usersRef.document(snapshot.documentID).get();
      print('List' + snapshot2.data);
    }

1 Ответ

0 голосов
/ 25 марта 2020

Вы могли бы сделать что-то вроде этого:

final db = Firestore.instance;
final uid = firebase.auth().currentUser.uid;

var userDetails = [];
var data = db.collection("followers").doc(uid).collection("userFollowers").get()
 .then(function(querySnapshot) {
    querySnapshot.forEach(function(doc) {
        userDetails.add(db.collection("users").doc(doc.user_id)
          .collection("user_details").get())
    });
});

ПРИМЕЧАНИЕ : Вы можете упростить это, добавив все идентификаторы подписчиков в массив подписчиков в каждом текущем пользовательском документе, это повысит производительность и уменьшите как количество операций чтения, так и количество данных, управляемых вашим приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...