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

在Firebase函数中通过documentId进行查询

阎麒
2023-03-14

当我使用documentId作为字段路径从Firebase Firestore查询数据时,在Web页面(javascript)和Firebase函数(node.js)中运行脚本时,我会得到不同的行为。

firebase.firestore().collection('test')
  .where(firebase.firestore.FieldPath.documentId(), '<=', 'ccc')
  .get()
  .then(snapshots => { /* results are here */ });
admin.firestore().collection('test')
  .where(admin.firestore.FieldPath.documentId(), '<=', 'ccc')
  .get()
  .then(snapshots => { /* ... */ });

给我一个错误:

错误:{错误:__name__上的筛选器必须是clientreadablestream._emitstatusIfdone(/user_code/node_modules/firebase-admin/node_modules/grpc/src/client.js:255:19)在clientreadablestream._receivestatus(/user_code/node_modules/firebase-admin/node_modules/firebase-admin/node_modules/grpc/src/client.js:233:8)在

我使用自己的文档ID,并希望通过这些ID进行查询。我知道我可以通过查询某个文档的内部字段来绕过这个问题,但我的问题是:这种不同行为的原因是什么?多谢.

我的firebase版本是3.17.4

编辑:此bug已解决,不出现在Firebase版本3.18.2中。

共有1个答案

祁俊拔
2023-03-14

这确实是Node SDK的一个特性省略,我们将在下一个版本中解决这个问题。

现在可以通过直接传递文档来解决这个问题:

const coll = admin.firestore().collection('test')
coll
  .where(admin.firestore.FieldPath.documentId(), '<=', coll.doc('ccc'))
  .get()
  .then(snapshots => { /* ... */ });
 类似资料:
  • 问题内容: 我查看了数小时的代码和注释,并努力寻找任何文档来帮助我在具有Firebase的快速应用程序中对对象进行增减。 我有一张图片库,我想为图像添加instagram风格。该用户已经使用firebase auth登录,所以我有他们的用户ID。 我只是想弄清楚方法以及需要在firebase中设置哪些规则。 任何帮助都是极好的。 问题答案: 我将描述如何在社交网络应用程序Impether中使用和实

  • 问题内容: 我一直在寻找通过Linux中的命令行查找具有相同名称的正在运行的进程数的最佳方法。例如,如果我想查找正在运行的bash进程数并获得“ 5”。目前,我有一个脚本执行’pidof’,然后对标记化字符串进行计数。这工作正常,但我想知道是否有更好的方法可以完全通过命令行来完成。在此先感谢您的帮助。 问题答案: 在可用的系统上,该选项返回与给定名称匹配的进程数的计数 请注意,这是-style匹配

  • 问题内容: 我希望能够查询“ value2”等于某个特定值的位置。我从参考开始: 由于我不知道自动生成的ID才能提供路径,因此我需要先获取它们才能确定可以使用的值?如果是这样,我是否不仅要获取每条记录以查找值,还是要使用某种索引仅获取等于值的索引? 最后,我想查询一个返回等于某个值的所有“记录”的查询。感觉我需要遍历每条记录才能做到这一点。我觉得我在这里缺少什么。 更新: 我试过了: 这会因我在下

  • 我尝试了、,但看起来这没有帮助

  • 问题内容: 我正在尝试研究如何使用cython来加快涉及我定义的类中完成的集成的计算。我试图更好地了解cython如何与用户定义的python类一起工作。我想了解更多有关为什么发生以下描述的错误的信息。 我在名为的文件中有以下cython代码 它显示了从班级内调用的三种方式 使用在类外部定义的cython被积函数:(确定!) 使用在类内部定义的cython被积函数:(产生错误) 将在类内部定义的c

  • 问题内容: 我有一个xml映射器-一个选择和一个结果映射器。它的工作没有问题。但是我想使用注释。我的地图绘制者: 所以我确实是这样 我不明白如何在不执行另一个sql查询的情况下通过注释映射我的集合。作为所有示例,我假设需要再执行一个查询。请帮忙。 问题答案: AFAIK,如果您使用带注释的映射,则不能使用。 在文档中,有关的用法, 到复杂类型的collection属性的映射。属性:select是可