首页 > 解决方案 > Firebase where 查询

问题描述

我有一个问题,这是代码:

        const firstName = "rick";

        const users = await db.collection('user');

        if (firstName != undefined) {
            users.where("name", "==", firstName );
        }
        
        const snap = users.get();

为什么这个查询会返回包含所有对象的整个文档?如何基于where可以为空或未定义的子句进行查询?谢谢你的帮助!

标签: node.jstypescriptfirebasegoogle-cloud-firestore

解决方案


您没有重新分配users,因此它正在获取整个集合。尝试像这样重构:

let users: firebase.firestore.Query = db.collection('user'); 
//^ let instead of const

if (firstName) { 
  users = users.where("name", "==", firstName );
  // ^^ updating original 'users' value
}
        
const snap = users.get();

推荐阅读