当前位置: 首页 > 知识库问答 >
问题:

Firebase复合查询总是得到空结果

微生毅
2023-03-14

我试图在firebase中的nodesjs服务器(函数部分)中创建一个查询

当我查询电子邮件->时,我得到了正确的文档

await admin.firestore().collection('sessions').where('email', '==', 'email@gmail.com').get()

当我查询时间戳->时,我得到了正确的文档

await admin.firestore().collection('sessions').where('timestamp', '>', 1601164800).get()

但是...当我查询电子邮件和时间戳->时,我没有得到任何文档...

await admin.firestore().collection('sessions').where('email', '==', email).where('timestamp', '>', 1601164800).get()

我对它的理解是,当我执行多个“where”时,这就像是一个逻辑,所以如果我在第一个查询和seconds查询中获得相同的记录,我应该在第三个查询中也获得它们

有什么让我怀念的吗?

集合数据索引定义

这是获取文档的整个过程的代码,结果数组我返回给客户机,我得到一个空数组

   async function getInfo() {
       let query = admin.firestore().collection('sessions').where('email', '==', 'email@gmail.com').where('timestamp', '>', 1601164800);

       let dbData = await query.get();
       let result = [];

       dbData.forEach(doc => {
           let data = doc.data();
           // this log is to see how many docs I get
           logger.log(data); 
           result.push(data);
       });

       return result;
   }

共有1个答案

苏法
2023-03-14

dbdata.docs上进行迭代怎么样?

logger.log(`Documents retrieved: ${dbData.size}`)

return dbData.docs.map(doc => doc.data())
  • https://googleapis.dev/nodejs/firestore/lates/querysnapshot.html
 类似资料:
  • 问题内容: 我正在研究hibernate和何时使用的情况,我的理解是,在hibernate中,每次我们通过一个实例或两个实例查询数据库时,hibernate都会获取结果集并将其存储在内存中,然后当我们再次调用该查询时,数据将从内存中获取而不是访问该数据库,我的理解正确吗? 另外,正如您从下面提到的问题注释中看到的那样,建议Hibernate Criteria从会话中获取数据,并且HQL始终会访问数

  • 我正在使用java Vert.x项目,并使用Vert.x官方文档的指南,使用反应式MySQL客户端连接到MySQL。当我试图从< code>SELECT查询中检索数据时,它总是给出空结果,即使数据库中有数据。下面给出了用来检索数据的方法。 上述方法的连接属性为: 该方法不显示任何错误,但始终给出o结果,并显示< code>logger.error("没有id的数据参考号:" id ");。这是什么

  • 我有一个存储库方法

  • 问题内容: 谁能指出如何检查选择查询是否返回非空结果集? 例如,我有下一个查询: 我应该像下一个那样做吗: 测试结果集是否不为空? 问题答案: 使用@@ ROWCOUNT: 根据SQL Server联机丛书: 返回受最后一条语句影响的行数。如果行数超过20亿,请使用ROWCOUNT_BIG。

  • 我正在制作一个php注册脚本,注册工作正常,所有内容都已成功输入数据库,激活电子邮件工作正常,但每当我使用mysqli查询来选择或更新信息时,它都不起作用。 例如,当我使用我知道数据库中存在的帐户登录时,它告诉我用户名不存在,当单击电子邮件中的激活链接时,查询无法以相同的方式更新数据库。 我相信这是一个非常简单的错误,我忽略了我的新手,但我找了几个小时后找不到合适的答案。我真的不确定问题出在哪里。

  • 问题内容: 所以我有一个像这样的firebase数据库: 我想通过使用键来获取uid。因此,我将这样查询它: 当我使用或作为起点时,会得到此打印(此处为): 可选({2 = uid2;}) 我很容易将其投射到 但是,当我将其用作起点时,会得到以下信息: optional(<__ NSArrayM 0x6000000494b0>( ,uid1))如果我尝试将其强制转换为Dictionary,它将得到