javascript - 如何检查firestore文档是否具有特定字段
问题描述
我有一个云功能,可以获取集合中的所有文档。获取所有文档后,我需要检查一个字段是否可以说每个文档中存在“链接”。如果文档没有“链接”字段,我将使用链接更新该文档。顺便说一句,最近添加了“链接”,因此有些文档有它,而有些则没有。有没有办法检查该字段是否已经在文档中?
const taskCol = await firestore.collection('/tasks/').get();
taskCol.forEach(task=>{
const taskData = task.data();
//check if field is existing.
if(taskData.link == null){ //THIS PART IS NOT WORKING
//i tried taskData.get('link') == null -->not working
//i tried taskData.link.exist() == true -->not working either
//create link
taskData.dynamicLink = createLink();
//update the task doc here
/*my update task code is here*/
}
});
解决方案
以下方法可以解决问题:
taskCol.forEach(task => {
const taskData = task.data();
//check if field is existing.
if (taskData.link) {
....
}
...
});
实际上,该data()
方法返回一个“标准”JavaScript 对象(或undefined
)。
推荐阅读
- android - 我怎样才能获得像 ColorOs、Flyme、LineageOS 等 Android 类型?
- react-native - 反应原生 | 钩子组件
- python - 如何基于单列将数据框着色为在整行中具有相同颜色的条件热图
- android - 使用 OnBackPressedDispatcher() 的 OnBackPressedCallback() 不起作用
- python - 从 Pandas 数据透视表框架中注释数据点
- shopware - Shopware 6 在店面搜索中包含属性
- ios - iPad Safari Ctrl+C 类似 Enter 的操作
- python - 构建后无法导入 caffe
- docker - 我需要使用我的 D 盘来运行我的 Docker。我能怎么做?
- laravel - 我无法从 laravel 连接到我的 sybase