在我的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点击的文档
您共享的代码明确仅读取
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"),
);