如何从Cloud Firestore的集合中检索一个特定文档?

时间:2020-07-03 19:19:46

标签: flutter google-cloud-firestore

我需要从我的文档的“公告”集合中检索一个文档。集合中的每个文档都被命名为一年中的某一天,例如“ 2020-07-02”。我想检索当天的文档。在文档中,我需要访问一个名为“详细信息”的地图数组,其中包含各种公告。如何将其写入我的应用程序?这是我目前正在做的事情,但我不知道从那里去哪里。

 Future getAnnouncements() async {
   var currentDate = DateFormat("yyyy-MM-dd").format(DateTime.now());
   var firestore = Firestore.instance;
   Stream<DocumentSnapshot> qn = firerestore.collection('announcements').document(currentDate).snapshots();
   return qn; //I want to only return the map array of the various documents
 }

1 个答案:

答案 0 :(得分:2)

尝试一下

 Future getAnnouncements() async {
   var currentDate = DateFormat("yyyy-MM-dd").format(DateTime.now());
   var firestore = Firestore.instance;
   Future<DocumentSnapshot> qn = await firerestore.collection('announcements')
   .document(currentDate)
   .get();

   return List<Map>.castFrom(qn["details"]);
   
 }

要解析返回的List,可以尝试

List<Map> retrievedData = await getAnnouncements();
for(int i = 0; i < retrievedData.length; i++)
{
  print(retrievedData[i]["title"]);
  print(retrievedData[i]["text"]); // Thanks @VLXU
}