Flutter Firebase 数据从子集合中读取所有文档

问题描述 投票:0回答:1

在我的flutter应用程序中,我在firebase中创建了一个Users集合,并在其中创建了一个Pictures集合,但问题是,虽然我可以使用用户的id轻松访问Users集合中的文档,但我无法访问我创建的文档在图片中不知道文档的 id。

  Future<List<String>> getPicturesFromCollections(String userId, String documentId) async {
    try {
      List<String> images = [];

      FirebaseFirestore firestore = FirebaseFirestore.instance;
      DocumentReference userCollectionRef = firestore
          .collection('Users')
          .doc(userId)
          .collection('Pictures')
          .doc(documentId);
      DocumentSnapshot collectionDocSnapshot = await userCollectionRef.get();

      if (collectionDocSnapshot.exists) {
        Map<String, dynamic>? data = collectionDocSnapshot.data() as Map<String, dynamic>?;
        if (data != null && data['images'] != null) {
          List<dynamic> imageList = data['images'] as List<dynamic>;
          pictures.addAll(imageList.map((picture) => picture.toString()));
        } else {
          print('doc not found -1');
        }
      } else {
        print('doc not found');
      }

      return pictures;
    } catch (e) {
      print('error: $e');
      return [];
    }
  }

如何访问用户使用文档ID点击的文档

flutter firebase google-cloud-platform google-cloud-firestore crud
1个回答
0
投票

您共享的代码明确仅读取

Pictures
子集合中的一份文档。

读取子集合中的所有文档,请遵循同名文档部分中的示例。从那里:

db.collection("cities").doc("SF").collection("landmarks").get().then(
  (querySnapshot) {
    print("Successfully completed");
    for (var docSnapshot in querySnapshot.docs) {
      print('${docSnapshot.id} => ${docSnapshot.data()}');
    }
  },
  onError: (e) => print("Error completing: $e"),
);
© www.soinside.com 2019 - 2024. All rights reserved.