首页 > 解决方案 > 如何检查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*/
    }


});

标签: javascriptfirebasegoogle-cloud-firestoregoogle-cloud-functions

解决方案


以下方法可以解决问题:

taskCol.forEach(task => {
    const taskData = task.data();

    //check if field is existing. 
    if (taskData.link)  {
          ....
    }

    ...
});

实际上,该data()方法返回一个“标准”JavaScript 对象(或undefined)。


推荐阅读