Firebase - невозможно выполнить локальную функцию после обновления до 6.9.0 - PullRequest
0 голосов
/ 07 мая 2019

После обновления firebase-tools с 6.8.0 до 6.9.0 моя локальная функция перестала работать. Я получаю ниже сообщение об ошибке при вызове из моего приложения:

λ firebase.cmd serve --only functions:upload
+  functions: Using node@12 from host.
+  functions: Emulator running at http://localhost:5001
i  functions: Beginning execution of "upload"
!  Error: Cannot find module 'package.json'
Require stack:
- C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:610:15)
    at Function.Module._load (internal/modules/cjs/loader.js:526:27)
    at Module.require (internal/modules/cjs/loader.js:666:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at verifyDeveloperNodeModules (C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:125:32)
    at C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:457:26
    at Generator.next (<anonymous>)
    at C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:7:71
    at new Promise (<anonymous>)
    at __awaiter (C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:3:12)
!  Your function was killed because it raised an unhandled error.

Я полностью переустановил узел и npm (включая удаление файлов% appdata%), удалил все файлы node_module и переустановил все с npm ci, но проблема остается.

firebase.cmd является версией 6.0.0

Как мне продолжить? Я мог бы выполнять ту же функцию до обновления, но теперь, даже если попытка понижения с помощью npm i firebase-tools@6.8.0, проблема остается.

Функция прямо сейчас:

const functions = require('firebase-functions');

exports.upload = functions.https.onRequest((req, res) => {
  console.log('Upload initiated')
  return null;
});

1 Ответ

0 голосов
/ 08 мая 2019

У меня была такая же проблема после обновления с firebase-tools 6.7.2 до 6.9.0

Эти шаги помогли мне вернуться к предыдущей версии в Windows 10:

  1. Удалите эмулятор функций
  2. Удалите firebase-tools
  3. Удалите конфигурацию эмулятора функций <== Это шаг, который я не знал о </strong>
  4. Переустановите предыдущую версию firebase-tools (6.7.2 или 6.8.0)

Подробные шаги:

Переключите версию nodejs, если у вас есть несколько.Я удалил функции-эмулятор и firebase-инструменты из всех версий.Деинсталляцию нужно выполнять для каждой версии отдельно.

nvm use 8.16.0

Деинсталлировать функции-эмулятор.Дополнительная информация: https://github.com/GoogleCloudPlatform/cloud-functions-emulator/wiki/Troubleshooting

npm uninstall -g @ google-cloud / functions-emulator

Удаление firebase-tools

npmудалите -g firebase-tools

Удалите папку конфигурации эмулятора функций, находящуюся в папке 'C: \ Users \ имя_руза \ .config \ configstore @ google-cloud \ functions-emulator'

Установите предыдущую версию firebase-tools.Версии перечислены в https://www.npmjs.com/package/firebase-tools

npm install -g firebase-tools@6.8.0

Я считаю, что вы можете использовать функции-эмулятор только содна версия nodejs, так что если вы устанавливаете ее с 8.16.0, то убедитесь, что вы переключились на эту версию с '> nvm use 8.16.0', прежде чем начинать локальное тестирование облачных функций

Войдите в firebase

firebase login

В каталоге вашего проекта обновите функции и пакеты администрирования

npm установите firebase-functions @ latest firebase-admin @ latest -save

Начать тестирование локально

функции firebase: shell Или использовать подачу firebase

Примечание: вызов функции-эмулятора напрямую с помощью 'firebaseэмуляторы: запуск не будет работать.

Следите за обновлениями на github: https://github.com/firebase/firebase-tools/issues/1258

...