首页 > 解决方案 > Firebase Cloud Functions TS - 未解析的函数/变量/方法

问题描述

我使用 IDE WebStorm,但在编写云函数时遇到了一些困难。看起来 WebStorm 无法识别 firebase 的某些方法/函数/变量。

例子:

在此处输入图像描述

深红色表示它无法解析该属性。如您所见,它无法识别db.settingssnapshot.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
}

到目前为止我没有成功的尝试:

未排除的包:

PS - 我不知道它是否与父文件夹有关,但我在这个项目中使用 Ionic 4,而在另一个项目中我只使用 Angular 并且它表现良好(两个函数文件夹具有完全相同的设置) .

更新 1 - 我尝试在 PC 和 MacOS(不同的设备)上运行这个项目,并且在它们两者中都发生了。这个问题不会发生在不同的项目上。

标签: typescriptfirebasegoogle-cloud-functionswebstormfirebase-admin

解决方案


问题是 FireStore 函数实际上是在@google-cloud/firestore插件中声明的,该插件作为依赖项安装firebase-admin但未在您的项目中列出package.json。WebStorm 自动从索引中排除所有间接依赖项以获得更好的性能,因此代码分析器无法使用函数定义。要解决此问题,请右键单击项目工具窗口node_modules/@google-cloud中的文件夹,然后将目录标记为/未排除。这应该可以解决问题:

在此处输入图像描述

在此处输入图像描述


推荐阅读