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'];
}
}
const orderSnap = await db.collection("YOUR_COLLECTION").where("user_id","==","01").get();
if (orderSnap.data().yourField == undefined) {
// DO SOMETHING HERE when yourField doesn't exist
}
6条答案
按热度按时间7fyelxc51#
来自cloud_firestore:^0.14.0之前,您可以通过以下操作来检查documentSnapshot中是否存在特定字段:
或者你也可以这样做:
kgqe7b3p2#
如果你想了解一个文档的内容,你必须阅读它并检查它的字段。不阅读文档就检查字段没有特殊操作。
wj8zmpe13#
使用
.where(yourField, '==', null)
的问题是,您不知道yourField是否实际存在并具有null
值,还是不存在如果
yourField
是你想知道它是否存在的字段,请注意yourField是用引号括起来的
yacmzcpb4#
我得到了另一个解决方案上面没有提到的谁没有与他的其他解决方案。其思想是将
Object
数据转换为Map
类型。所以首先你需要导入这个
在你的dart文件中,然后我们将编码对象数据,以获得它作为Map类型
gzszwxb45#
您可以采取额外的步骤,在创建文档时向每个文档添加
docId
字段,然后将其用作第二个where条件。* 如果这是内置的,那就太好了,但如果需要的话,实现这个解决方案也不是什么大问题 *p5cysglq6#
您可以使用密钥名称检查是否存在
undefined
值