我正在开发云 Firestore,我们假设这就是我的文档在集合中的结构:
{
'name': 'something'
'age': 23,
}
我有大约 200-300 个用户,我像这样存储他们的数据。现在假设我必须添加一个新字段
favorite_color
。因此,我将其添加到现在正在创建的所有新用户帐户中。所以现在一些文档如下所示:
{
'name': 'something'
'age': 23,
'favorite_color': 'red',
}
现在我想通过以下查询获取这些文档:
Get all docs where favorite_color is empty string or if the field just doesn't exist
。我不知道如何完成这件事。这还可以吗?任何帮助将不胜感激。
我不确定这如何与查询一起使用,但您可以尝试以下代码:
Future<List<Map<String, dynamic>>> getData() async {
try {
final list =
await FirebaseFirestore.instance.collection("users").get();
/// Result List
final List<Map<String, dynamic>> res = [];
for (final element in list.docs) {
final data = element.data();
if (data.containsKey("fieldName")) {
if ((data['fieldName'] as String).isEmpty) {
/// if Field is Empty
/// add to result list
res.add(data);
} else {
/// Handle Data with non empty fieldName
}
} else {
/// if Field is not present
/// add to result list
res.add(data);
}
}
return res;
} catch (e) {
print(e.toString());
rethrow;
}
}