如何检查firestore数据库中的文档中是否存在Field?

Sai*_*lak 7 firebase flutter google-cloud-firestore

我的Firestore数据库:

Firestore 数据库截图

我想检查仅在文档“D9GeGdTxarFruuuQklEO”中是否存在名为“EmailOf@Follower.com”的字段,而不是检查所有文档,无论如何要在firestore Flutter 中执行此操作?

小智 9

从 cloud_firestore: ^0.14.0 到 up,您可以通过执行以下操作来检查 documentSnapshot 中是否存在特定字段:

CollectionReference users = FirebaseFirestore.instance.collection('users');
var doc = await users.doc(id).get();
 if(doc.exists){
     Map<String, dynamic> map = doc.data();
     if(map.containsKey('field')){// Replace field by the field you want to check.
       var valueOfField = map['field'];
     }
   }
Run Code Online (Sandbox Code Playgroud)

或者你也可以这样做:

await _users.doc(id).get().then((doc){
   if(doc.exists){
     doc.data().forEach((key, value) { 
       if(key == 'field'){
         var valueOfField = value;
       }
     });
   }
});
Run Code Online (Sandbox Code Playgroud)


Dou*_*son 5

如果您想了解有关文档内容的任何信息,则必须阅读它并检查其字段。在不阅读文档的情况下,没有检查字段的特殊操作。

  • 最好有一个像“.where(field_name, '==', null)”这样的查询。我想这就是他的意思。获取所有 10k 条记录却只找出少数符合这个简单条件的记录,这确实很奇怪。 (21认同)