Firebase Cloud Functions TS - Неразрешенные функции / переменные / методы - PullRequest
0 голосов
/ 24 октября 2018

Я использую IDE WebStorm, и у меня возникают некоторые трудности при кодировании облачных функций.Похоже, WebStorm не распознает некоторые методы / функции / переменные firebase.

Пример:

enter image description here

темно-красный цветозначает, что это не могло разрешить собственность.Как видите, он не распознает 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
  • delete functions и firebase init functions - Сработал на мгновение, а затем не смог найти источник.
  • Пытался исключить node_modules только ради него.

Не включенные пакеты:

  • @ google-cloud
  • @ types (+ @types / *)
  • firebase-admin
  • firebase-functions
  • tslint
  • машинопись

PS - я не знаю, имеет ли это отношение к родительской папке, но яЯ использую Ionic 4 в этом проекте, в то время как в другом проекте я использую только Angular, и он ведет себя хорошо (обе папки функций имеют одинаковые настройки).

Обновление 1 - я пытался запустить этот проект как на ПК, так и на компьютере.макинтошОС (разные устройства) и такое бывает у них обоих.Эта проблема не возникает в разных проектах.

1 Ответ

0 голосов
/ 25 октября 2018

Проблема в том, что функции FireStore фактически объявлены в плагине @google-cloud/firestore, который устанавливается как зависимость firebase-admin, но не указан в вашем проекте package.json.А WebStorm автоматически исключает все косвенные зависимости из индексации для повышения производительности, поэтому определения функций недоступны для анализатора кода.Чтобы решить эту проблему, щелкните правой кнопкой мыши папку node_modules/@google-cloud в окне * Project и выберите Пометить каталог как / не исключено .Это должно решить проблему:

enter image description here

enter image description here

...