我有一个使用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_modules
和package_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_modules
和package_lock.json
,但删除它们后,我无法通过上面的以下命令或运行再次创建它们
- npm安装
在功能文件夹内
我以社区Wiki的身份发布,基于问题中的评论线索。请随意修改并根据您的意愿添加信息。
考虑到错误消息,事实上,这似乎与firebase-admin
包没有正确安装最新版本有关。要安装最新版本,您可以尝试以下命令之一:
- 直接安装版本8.0.0:
npm install --save firebase-admin@^8.0.0
- 安装最新版本的常规命令:
npm install firebase-admin@latest
这将帮助您开始解决问题。
感谢@DougStevenson和@FrankvanPuffelen的真知灼见!