【发布时间】:2019-03-29 05:03:21
【问题描述】:
我使用 IDE WebStorm,但在编写云函数时遇到了一些困难。看起来 WebStorm 无法识别 firebase 的某些方法/函数/变量。
例子:
深红色表示无法解析该属性。
如您所见,它无法识别db.settings、snapshot.data()、db.doc() 和snapshot.id。
我的 package.json(自动生成,什么都没碰过):
{
"name": "functions",
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc",
"serve": "npm run build && firebase serve --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"main": "lib/index.js",
"dependencies": {
"firebase-admin": "~6.0.0",
"firebase-functions": "^2.0.3"
},
"devDependencies": {
"tslint": "~5.8.0",
"typescript": "~2.8.3"
},
"private": true
}
到目前为止我尝试过的都没有成功:
- 无效并重新启动
- 重新安装 node_modules
- 取消排除包
@google-cloud - 删除
functions和firebase init functions- 工作了一会儿,然后找不到源。 - 试图取消排除
node_modules只是为了它。
未排除的包:
- @google-cloud
- @types (+ @types/*)
- firebase 管理员
- firebase 功能
- tslint
- 打字稿
PS - 我不知道它是否与父文件夹有关,但我在这个项目中使用 Ionic 4,而在另一个项目中我只使用 Angular 并且它表现良好(两个函数文件夹都有确切的相同的设置)。
更新 1 - 我尝试在 PC 和 MacOS(不同的设备)上运行这个项目,并且在它们两者中都发生了这种情况。不同的项目不会出现此问题。
【问题讨论】:
-
如果
npm run build一切正常,那么问题出在 webstorm 上。 -
它输出一个错误。但它与父目录(应用程序本身)有关,但实际上,根本没有错误。我不得不将构建脚本更改为
tsc --skipLibCheck。 -
我仅使用“firebase init”功能进行了测试。 VS 代码都很好,你的 package.json 没有问题。仅供参考,firebase-admin 模块是指 @google-cloud/firestore 类型。我想你的 webstorm 没有正确解析。
-
@JohnCho 我认为问题与父目录有关,而不是与函数文件夹有关,因为我在不同的应用程序中有完全相同的文件夹,Webstorm 可以正确解析它
-
@Eliya Cohen 更简单的调试方法来自简单的代码。我刚刚确认您的 package.json 文件没有问题。正如您所提到的,webstorm 与其他项目一起使用。那么你的代码与 webstorm 不兼容。能否提供源代码?
标签: typescript firebase google-cloud-functions webstorm firebase-admin