检查Firebase文档中的特定字段,如果找到字段,则返回文档ID。

时间:2020-01-25 10:27:30

标签: firebase flutter dart google-cloud-firestore

如果文档中的字段与我需要的匹配,我想返回文档ID。到目前为止,我已经尝试过了。

enter image description here

final result = await queueCollection.where('patientID', isEqualTo: uid).getDocuments();
print(result.documents);
return result;

2 个答案:

答案 0 :(得分:1)

如果要从数据库中获取与result查询相对应的元素,则应使用stream,如以下代码行所示:

 Widget _build(BuildContext context) {
 return StreamBuilder<QuerySnapshot>(
   stream: queueCollection.where('patientID', isEqualTo: uid).snapshots(),
   builder: (context, snapshot) {
     if (!snapshot.hasData) {
       return LinearProgressIndicator();
     }

     var snapshots = snapshot.data.documents;
     //Do what you need to do with the data

     //return a ListView for example
   },
 );
}

请注意,snapshotsList<DocumentSnapshot>类型的对象。现在,简单地遍历列表,并从中获取每个DocumentSnapshot元素。有了它后,只需像这样获得patientID

var patientID = userDocument["patientID"]

答案 1 :(得分:0)

您应该考虑哪种方法在Firebase平台中返回什么。 getDocument()返回多个文档(如果有)。您的result变量现在保存QuerySnapshot。您可以使用此代码遍历每个文档。

result.documents.forEach((DocumentSnapshot documentSnapshot ){
    print(documentSnapshot.data);
});