使用Flutter从Firebase Firestore检索数据

时间:2020-03-25 08:59:30

标签: flutter google-cloud-firestore

我正在尝试从Cloud Firestore的Flutter中的以下路径获取数据,并且具有以下结构

  1. 关注者/ {currentuser} / userFollowers / {user_id}
  2. users / user_id / user_details

我正在尝试获取当前用户的所有关注者的详细信息。有人可以帮忙吗?

我能够通过

获得第一部分
DocumentSnapshot snapshot =
        await followersRef.document(currentUser.id).get();

我不知道如何遍历所有id来从用户集合中获取其数据。我正在尝试以下代码,但没有成功。

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

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

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())
    });
});

注意:您可以通过将所有关注者ID添加到每个当前用户文档上的followersID数组中来简化此操作,这将提高性能并减少应用程序管理的读取次数和数据量。