where in查询不在Node JS中运行



我有一个使用where In子句的查询,但当我部署它并由作业运行时,它会删除此错误

Error: Value for argument "opStr" is invalid. Acceptable values are: <, <=, ==, >, >=, array-contains, in, array-contains-any
at Object.validateEnumValue (/workspace/node_modules/@google-cloud/firestore/build/src/validate.js:294:15)
at validateQueryOperator (/workspace/node_modules/@google-cloud/firestore/build/src/reference.js:2111:16)
at Query.where (/workspace/node_modules/@google-cloud/firestore/build/src/reference.js:1013:17)
at exports.rememberToFinishOrder.functions.pubsub.schedule.timeZone.onRun (/workspace/index.js:168:92)
at cloudFunction (/workspace/node_modules/firebase-functions/lib/cloud-functions.js:127:23)
at Promise.resolve.then (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:198:28)
at process._tickCallback (internal/process/next_tick.js:68:7) 

我读到这个错误与一个过时的firebase管理包有关,但我确实更新了所有的东西,如果我删除了node_modulespackage_lock.json,我不能用npm安装再次创建它们,我该怎么办?

问题:https://github.com/firebase/firebase-admin-node/issues/767

查询

let snap = await db.collection('orders')
.where("timestamp","<",new Date(compareDate))
.where("status", "in" [1,2,4,5,6]).get()

我是如何复制的

我做了一个which querie并得到了上面的错误,搜索我发现问题是针对一个过时版本的Firebase Admin,我在中做了以下操作

在功能文件夹内

  • npm ifirebase-admin@latest
  • npm i-g firebase工具
  • npm安装--保存firebase-functions@latest

它们都无法更新我需要更新的内容以支持查询,然后我尝试从函数文件夹中删除node_modulespackage_lock.json,但删除它们后,我无法通过上面的以下命令或运行再次创建它们

  • npm安装

在功能文件夹内

我以社区Wiki的身份发布,基于问题中的评论线索。请随意修改并根据您的意愿添加信息。

考虑到错误消息,事实上,这似乎与firebase-admin包没有正确安装最新版本有关。要安装最新版本,您可以尝试以下命令之一:

  1. 直接安装版本8.0.0:npm install --save firebase-admin@^8.0.0
  2. 安装最新版本的常规命令:npm install firebase-admin@latest

这将帮助您开始解决问题。

感谢@DougStevenson和@FrankvanPuffelen的真知灼见!

相关内容

  • 没有找到相关文章

最新更新