Firebase-tools: «функции: не удалось загрузить исходный код функций. Убедитесь, что у вас установлена ​​последняя версия SDK по…».

Созданный на 19 янв. 2018  ·  60Комментарии  ·  Источник: firebase/firebase-tools

Информация о версии

> firebase --version
3.17.1
> node --version
v6.12.3
> npm --version
5.6.0

Действия по воспроизведению

> git clone https://github.com/firebase/functions-samples.git
> cd functions-samples/authenticated-json-api/functions/
> npm install

> [email protected] install /Users/karl/Development/git/learnics/functions-samples/authenticated-json-api/functions/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

[grpc] Success: "/Users/karl/Development/git/learnics/functions-samples/authenticated-json-api/functions/node_modules/grpc/src/node/extension_binary/node-v48-darwin-x64-unknown/grpc_node.node" is installed via remote

> [email protected] postinstall /Users/karl/Development/git/learnics/functions-samples/authenticated-json-api/functions/node_modules/protobufjs
> node scripts/postinstall

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] requires a peer of firebase-admin@~4.2.1 but none is installed. You must install peer dependencies yourself.

added 354 packages in 11.832s
> firebase use my-project
Now using project my-project
> firebase serve --only functions

=== Serving from '/Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api'...

i  functions: Preparing to emulate functions.
⚠  functions: Failed to load functions source code. Ensure that you have the latest SDK by running npm i --save firebase-functions inside the functions directory.
⚠  functions: Error from emulator. FirebaseError: Error occurred while parsing your function triggers. Please ensure you have the latest firebase-functions SDK by running "npm i --save firebase-functions@latest" inside your functions folder.

Error: Firebase config variables are not available. Please use the latest version of the Firebase CLI to deploy this function.
    at init (/Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api/functions/node_modules/firebase-functions/lib/config.js:51:15)
    at Object.config (/Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api/functions/node_modules/firebase-functions/lib/config.js:29:9)
    at Object.<anonymous> (/Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api/functions/index.js:27:31)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)

Фактическое поведение

> firebase serve --only functions --debug
[2018-01-19T03:30:49.455Z] ----------------------------------------------------------------------
[2018-01-19T03:30:49.459Z] Command:       /usr/local/Cellar/node@6/6.12.3/bin/node /usr/local/bin/firebase serve --only functions --debug
[2018-01-19T03:30:49.460Z] CLI Version:   3.17.1
[2018-01-19T03:30:49.460Z] Platform:      darwin
[2018-01-19T03:30:49.460Z] Node Version:  v6.12.3
[2018-01-19T03:30:49.460Z] Time:          Thu Jan 18 2018 22:30:49 GMT-0500 (EST)
[2018-01-19T03:30:49.461Z] ----------------------------------------------------------------------

[2018-01-19T03:30:49.476Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[2018-01-19T03:30:49.476Z] > authorizing via signed-in user
[2018-01-19T03:30:49.479Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/my-project

 Thu Jan 18 2018 22:30:49 GMT-0500 (EST)
[2018-01-19T03:30:49.855Z] <<< HTTP RESPONSE 200 server=nginx, date=Fri, 19 Jan 2018 03:30:49 GMT, content-type=application/json; charset=utf-8, content-length=126, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store
[2018-01-19T03:30:49.856Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/database/my-project/tokens

 Thu Jan 18 2018 22:30:49 GMT-0500 (EST)
[2018-01-19T03:30:50.482Z] <<< HTTP RESPONSE 200 server=nginx, date=Fri, 19 Jan 2018 03:30:50 GMT, content-type=application/json; charset=utf-8, content-length=267, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store

=== Serving from '/Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api'...

i  functions: Preparing to emulate functions.
[2018-01-19T03:30:51.081Z] Fetching environment
[2018-01-19T03:30:51.082Z] >>> HTTP REQUEST GET https://appengine.googleapis.com/v1/apps/my-project

 Thu Jan 18 2018 22:30:51 GMT-0500 (EST)
[2018-01-19T03:30:51.083Z] >>> HTTP REQUEST GET https://apikeys.googleapis.com/v1/projects/my-project/apiKeys

 Thu Jan 18 2018 22:30:51 GMT-0500 (EST)
[2018-01-19T03:30:51.569Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Fri, 19 Jan 2018 03:30:51 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2018-01-19T03:30:51.663Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Fri, 19 Jan 2018 03:30:51 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2018-01-19T03:30:51.664Z] Starting @google-cloud/functions-emulator
[2018-01-19T03:30:53.220Z] Parsing function triggers
⚠  functions: Failed to load functions source code. Ensure that you have the latest SDK by running npm i --save firebase-functions inside the functions directory.
⚠  functions: Error from emulator. FirebaseError: Error occurred while parsing your function triggers. Please ensure you have the latest firebase-functions SDK by running "npm i --save firebase-functions@latest" inside your functions folder.

Error: Firebase config variables are not available. Please use the latest version of the Firebase CLI to deploy this function.
    at init (/Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api/functions/node_modules/firebase-functions/lib/config.js:51:15)
    at Object.config (/Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api/functions/node_modules/firebase-functions/lib/config.js:29:9)
    at Object.<anonymous> (/Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api/functions/index.js:27:31)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)

Очень странно, потому что в других проектах firebase serve --only functions зависает, и я перепробовал кучу других образцов. Ни в одном из них это не работает.

Это даже не работает для функций, которые я уже развернул.

Самый полезный комментарий

Попробуйте запустить npm run serve из каталога functions вместо firebase serve --only functions , это может работать или не работать в зависимости от того, как настроен ваш файл package.json.

Все 60 Комментарий

Попробуйте запустить npm run serve из каталога functions вместо firebase serve --only functions , это может работать или не работать в зависимости от того, как настроен ваш файл package.json.

К сожалению, у меня нет для этого настроенного package.json.

> npm run serve
npm ERR! Darwin 17.3.0
npm ERR! argv "/Users/alchemist/.nvm/versions/node/v6.11.5/bin/node" "/Users/karl/.nvm/versions/node/v6.11.5/bin/npm" "run" "serve"
npm ERR! node v6.11.5
npm ERR! npm  v3.10.10

npm ERR! missing script: serve
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/alchemist/Development/git/learnics/functions-samples/authenticated-json-api/functions/npm-debug.log

Можете ли вы указать мне на один?

Вот как выглядит мой после свежего firebase init : https://gist.github.com/dylanjmcdonald/6c033b476e863efaea3eccc0b3137772

Мне удалось обойти эту ошибку, понизив firebase-tools до 3.16.0, поскольку ошибка началась после обновления до 3.17.1.

Более длинная история

Впервые я наткнулся на эту ошибку в своем CI-раннере, потому что я устанавливал последнюю версию firebase-tools для развертывания. Ночью мои развертывания перестали работать. Они снова начали работать после того, как я обновил firebase-admin и firebase-functions .

Но затем моя локальная среда перестала работать. Я все еще мог развертывать, но не мог выполнять функции. Пробовал удалить firebase-tools и переустановить... И все возможные варианты (очистка кеша, использование последней версии NPM, использование 6.11.5, использование Yarn и т. д.). Не повезло.

Наконец, я решил откатить все до версий, которые работали раньше, и заморозил версию, используемую в моем CI-скрипте (вместо использования самой последней), и теперь обе среды работают стабильно.

Несколько месяцев назад я видел разные варианты этой проблемы с различными возможными решениями. Может это регресс? Какая-то неясная основная проблема?

Кстати: я запускаю macOS High Sierra 10.13.2 локально и образ Node: последний Docker для моего CI runner на GitLab, если это поможет.

PS: По моему опыту, внутри npm run dev работает firebase serve --only functions .

@rafasoares : спасибо, могу подтвердить, что понижение до 3.16.0 исправило ошибку!

npm install -g [email protected]

Я также использую macOS High Sierra 10.13.2, но использую узел v6.11.5, установленный через nvm .

@The-Alchemist рад, что смог помочь.

Я пробовал как с последним узлом, установленным через brew (9.x), так и с 6.11.5, установленным через nvm. Раньше он работал с последним узлом (хотя и с предупреждением о версии узла GCP).

Всем привет, для последней версии firebase-tools (3.17.1) также требуется последняя версия SDK firebase-functions, поэтому лучший способ решить проблемы — запустить «npm i --save firebase -functions@latest » внутри папки функций. перед развертыванием или обслуживанием, как следует из сообщения об ошибке.

@laurenzlong вы читали мой комментарий выше? Это было первое, что я попробовал. После этого я смог firebase deploy --only functions , но не firebase serve --only functions .

И я испробовал всевозможные стратегии очистки, какие смог придумать. Я даже удалил свою рабочую копию и вытащил все из Git с нуля.

@rafasoares Извините, я пропустил эту часть. Я посмотрю на это сейчас.

Потрясающий! Спасибо!

Выпущена версия 3.17.2, которая должна была решить проблему. Если это не так, дайте мне знать. Спасибо за отчет!

Только что попробовал v3.17.2, у меня сработало!

Это не сработало для меня. Мне удалось заставить его работать над пустым проектом, но я не смог заставить работать мой текущий проект.

Поэтому я пошел копать. Каковы различия между ними?

Я смог точно определить проблему. Он ломается, когда я добавляю этот фрагмент кода:

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase); // <-- Specifically, this line

Если я удалю бит инициализации, я смогу выполнять функции. Однако я не могу использовать Firestore.

Обновление: если я заменю вызов functions.config().firebase следующим JSON, он сработает:

{
  databaseURL: 'https://[PROJECT_NAME].firebaseio.com',
  storageBucket: '[PROJECT_NAME].appspot.com',
  apiKey: '[API KEY]',
  authDomain: '[PROJECT_NAME].firebaseapp.com',
  projectId: '[PROJECT_NAME]',
  credential: admin.credential.applicationDefault()
}

Этот JSON был результатом functions.config().firebase при использовании [email protected] (за исключением бита credential , который я получил из docs.

Однако я не пробовал развертывание с этим кодом.

@rafasoares Я понизил зависимость от google-cloud/functions-emulator, вот в чем разница. Попробуйте «npm uninstall -g firebase-tools & npm i -g firebase-tools». В зависимости от версии npm, которая у вас есть, иногда она не понижает версии зависимостей, если вы сначала не выполните удаление.

@rafasoares Кажется, я ошибся в версии semver, я думаю, что исправил это в # 618, вы можете попробовать использовать эту ветку?

установка npm -g https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1

@лауренцлонг

Похоже, я ошибся в версии semver, я думаю, что исправил это в # 618, вы можете попробовать использовать эту ветку?

У меня была та же проблема, что и у @rafasoares , и я попробовал npm install -g https://github.com/firebase/firebase-tools.git#laurenzlong-patch-1 , но проблема осталась.

К npm install -g [email protected] проблема решена.

Извините, я играл с Yarn и NPM, пытаясь заставить их загрузить правильную версию, я, вероятно, испортил свою среду, ха-ха.

Но да, https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1 по-прежнему выдает ошибку, хотя @google-cloud/[email protected] является установленной версией.

@mono0926 @rafasoares Как насчет этого?
установка npm -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Спасибо за ваше терпение и помощь!

@лауренцлонг

установка npm -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Это все еще дает мне ошибку, к сожалению :(

как насчет npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu

@лауренцлонг

как насчет npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Я уже пробовал это.

По-видимому, https://github.com/firebase/firebase-tools.git#ll -fixemu исправляет это для меня.

$ yarn global remove firebase-tools
yarn global v1.3.2
[1/2] Removing module firebase-tools...
[2/2] Regenerating lockfile and installing missing dependencies...
success Uninstalled packages.
✨  Done in 3.91s.
$ yarn global add https://github.com/firebase/firebase-tools.git\#ll-fixemu
yarn global v1.3.2
[1/4] 🔍  Resolving packages...
warning https://github.com/firebase/firebase-tools.git#ll-fixemu > universal-analytics > [email protected]: Use uuid module instead
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed "[email protected]" with binaries:
      - firebase
✨  Done in 11.73s.
$ firebase --version
3.17.2
$ firebase serve --only functions

=== Serving from '/Users/[USERNAME]/dev/projects/[PROJECT NAME]'...

i  functions: Preparing to emulate functions.
✔  functions: createUrl: http://localhost:5000/[PROJECT NAME]/us-central1/createUrl
✔  functions: getUrl: http://localhost:5000[PROJECT NAME]us-central1/getUrl

В настоящее время я использую узел v6.11.5. @ mono0926 может быть, это как-то связано с этим?

@rafasoares

В настоящее время я использую узел v6.11.5. @ mono0926 может быть, это как-то связано с этим?

Я использую ту же версию узла 🤔

@ mono0926 да, я просто предположил. Я только что попробовал использовать последнюю версию, и это сработало.

Попробуйте выполнить тщательную очистку ваших глобальных зависимостей и очистку кеша (также попробуйте перестроить локальные зависимости вашего проекта). Я сделал это несколько раз сегодня, пытаясь решить эту проблему, может быть, это помогло.

@rachelmyers @laurenzlong

Я заметил, что детали ошибки изменились после попытки npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu .

И ошибка произошла в моем коде, и я его модифицировал, после чего ошибка устранилась 👍

Если я использую [email protected] , ошибка не возникает без изменения моего кода.
Итак, я скажу вам позже, я исследовал проблему в деталях.

@ mono0926 mono0926 Не могли бы вы поделиться с нами тем, что вы изменили в своем коде? Было ли это связано с Firebase?

@rachelmyers @laurenzlong

Я исследовал это и понял суть.

С этим кодом

import * as functions from 'firebase-functions';
import * as util from 'util';
console.error(`environment: ${util.inspect(functions.config().environment.project_id)}`);

Ошибка возникает:

TypeError: Cannot read property 'project_id' of undefined

Но с этим кодом

import * as functions from 'firebase-functions';
import * as util from 'util';
console.error(`environment: ${util.inspect(functions.config().environment)}`);

Этот журнал печатается:

info: environment: { project_id: 'development' }

Почему я не могу получить доступ к project_id из functions.config().environment в последней версии?
Мне удалось получить доступ к project_id из functions.config().environment под [email protected] .

Я знаю, что это еще одна проблема с этой проблемой.

Не могли бы вы поделиться с нами тем, что вы изменили в своем коде? Было ли это связано с Firebase?

Я устраняю проблему путем временного жесткого кодирования значения project_id , поэтому я хотел бы, чтобы вы исправили проблему.

Когда я развернул функции, проблема не возникает.

@ The-Alchemist Подтверждаю и я: при переходе на 3.16.0 ошибка исправлена!

npm install -g [email protected]

Я также использую macOS High Sierra 10.13.2 и узел v8.9.4, установленный его установщиком с фиксированным разрешением: https://docs.npmjs.com/getting-started/fixing-npm-permissions.

Нет проблем с [email protected] в Windows.

Я получил :

+ [email protected]
updated 1 package in 50.957s
(xenial)marcus<strong i="6">@localhost</strong>:~/app$  firebase serve --only functions

=== Serving from '/home/marcus/app'...

⚠  functions: Cannot start emulator. Error: Cannot find module '/usr/lib/node_modules/firebase-tools/node_modules/grpc/src/node/extension_binary/grpc_node.node'

Маркус: --only functions (множественное число)

В субботу, 20 января 2018 г., 12:44 Маркус Хитчинс, [email protected]
написал:

Я получил :

=== Подача из '/home/marcus/app'...

Ошибка: не удается понять, какие цели развертывать. Убедитесь, что вы указали допустимые цели, если вы использовали флаг --only или --except. В противном случае проверьте файл firebase.json, чтобы убедиться, что ваш проект инициализирован для необходимых функций.


Вы получаете это, потому что подписаны на эту тему.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/firebase/firebase-tools/issues/609#issuecomment-359200751 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/AAAD_tJH6ez89mjEZVdJbPVMDqeKym76ks5tMlAQgaJpZM4Rj8M0
.

@mono0926 mono0926 Мы никогда не поддерживали пользовательские значения конфигурации внутри эмулятора, вам нужно запустить «firebase functions:config:get > .runtimeconfig.json» внутри вашей папки функций, чтобы переменные сохранялись в .runtimeconfig.json и могли быть доступны для эмулятор.

@ marcus7777 Я думаю, что это отдельная проблема, описанная в https://github.com/firebase/firebase-tools/issues/442 .

Я закрываю эту проблему сейчас, так как первоначально сообщенная ошибка исправлена ​​​​в версии 3.17.3.

Удивительно, как быстро с этим разобрались. Потрясающая работа @laurenzlong. 👏

@лауренцлонг

вам нужно запустить "firebase functions:config:get > .runtimeconfig.json" внутри вашей папки функций, чтобы переменные сохранялись в .runtimeconfig.json и могли быть доступны эмулятору.

Я понимаю. Я забыл написать эту информацию.
Это functions/.runtimeconfig.json :

{
  "environment": {
    "project_id": "development"
  }
}

Мне удалось получить доступ к functions.config().environment. project_id в версии ниже 3.16.0, но я не могу получить доступ к последней версии (v3.17.3).

@mono0926 mono0926 Можете ли вы открыть новую проблему для этого? А также укажите, какую версию функций firebase вы используете?

@лауренцлонг

Можете ли вы открыть новую тему для этого? А также укажите, какую версию функций firebase вы используете?

Хорошо, я открыл вопрос 👍: https://github.com/firebase/firebase-tools/issues/629

просто обновите до 3.17.4 все равно получите:

sudo npm install -g firebase-tools
[sudo] password for marcus: 
npm WARN deprecated [email protected]: Use uuid module instead
/usr/bin/firebase -> /usr/lib/node_modules/firebase-tools/bin/firebase
+ [email protected]
updated 4 packages in 555.594s
(xenial)marcus<strong i="6">@localhost</strong>:~$ cd app/
(xenial)marcus<strong i="7">@localhost</strong>:~/app$ firebase serve --only functions

=== Serving from '/home/marcus/Downloads/deko-app'...

⚠  functions: Cannot start emulator. Error: Cannot find module '/usr/lib/node_modules/firebase-tools/node_modules/grpc/src/node/extension_binary/grpc_node.node'
(xenial)marcus<strong i="8">@localhost</strong>:~/app$

и пробовал # 442, но безуспешно.
пс. запустить на xenial (Linux)

@ marcus7777 marcus7777 проблема, с которой вы столкнулись, не связана с этой проблемой. Попробуйте удалить firebase-tools и переустановить. Если не получится, открывайте новую тему.

Мне также удалось удалить локальное состояние эмулятора:

$HOME/.config/configstore/@google-cloud/functions-emulator/.functions.json

и подобные файлы.
Благодарность

Привет,

У меня также возникла эта проблема с [email protected].

Как отметил @rafasoares , проблема возникает, если я добавляю эту строку:

admin.initializeApp(functions.config().firebase);

Это ошибка, которую я получаю:

➜  functions yarn run shell
yarn run v1.5.1
$ yarn run build && firebase experimental:functions:shell
$ tsc
i  functions: Preparing to emulate functions.
⚠  functions: Failed to load functions source code. Ensure that you have the latest SDK by running npm i --save firebase-functions inside the functions directory.
⚠  functions: Error from emulator. Error occurred while parsing your function triggers. Please ensure you have the latest firebase-functions SDK by running "npm i --save firebase-functions@latest" inside your functions folder.

Error: Firebase config variables are not available. Please use the latest version of the Firebase CLI to deploy this function.
    at init (/Volumes/HDD/carlosbernal/Dropbox/Wanttu/Futbol/backend/functions/node_modules/firebase-functions/lib/config.js:55:15)
    at Object.config (/Volumes/HDD/carlosbernal/Dropbox/Wanttu/Futbol/backend/functions/node_modules/firebase-functions/lib/config.js:29:9)
    at Object.<anonymous> (/Volumes/HDD/carlosbernal/Dropbox/Wanttu/Futbol/backend/functions/lib/index.js:5:35)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
No functions emulated.
✨  Done in 11.64s.

Также, когда я понижаюсь до [email protected] , я могу получить доступ к оболочке, но появляется новая ошибка:

➜  functions yarn run shell
yarn run v1.5.1
$ yarn run build && firebase experimental:functions:shell
$ tsc
i  functions: Preparing to emulate functions.
⚠  functions: Error from emulator. TypeError: Cannot read property 'split' of undefined
✔  functions: addMessage
firebase >

@laurenzlong Может быть, я что-то упускаю?

@BernalCarlos Как следует из сообщения об ошибке, убедитесь, что вы используете последнюю версию функций firebase. Запустите следующее в вашем каталоге функций: `npm i --save firebase -functions@latest '

После этого ваши functions/package.json должны иметь firebase-functions 0.8.1

@laurenzlong У меня уже есть последняя версия firebase-functions. Это мой package.json:

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "yarn run build && firebase serve --only functions",
    "shell": "yarn run build && firebase experimental:functions:shell",
    "start": "yarn run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "main": "lib/index.js",
  "dependencies": {
    "firebase-admin": "^5.9.1",
    "firebase-functions": "^0.8.1"
  },
  "devDependencies": {
    "tslint": "^5.9.1",
    "typescript": "^2.7.2"
  },
  "private": true
}

В yarn.lock у меня также есть это:

...

firebase-functions@^0.8.1:
  version "0.8.1"
  resolved "https://registry.yarnpkg.com/firebase-functions/-/firebase-functions-0.8.1.tgz#a42fe6d243862c406af16e1c16b1d0a81ec24c03"
  dependencies:
    "@types/express" "^4.0.33"
    "@types/jsonwebtoken" "^7.1.32"
    "@types/lodash" "^4.14.34"
    "@types/sha1" "^1.1.0"
    express "^4.0.33"
    jsonwebtoken "^7.1.9"
    lodash "^4.6.1"
    sha1 "^1.1.1"

...

firebase-admin@^5.9.1:
  version "5.9.1"
  resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-5.9.1.tgz#1edf6248d014063f0e473f84fe9d63df18e53807"
  dependencies:
    "@firebase/app" "^0.1.10"
    "@firebase/database" "^0.1.11"
    "@google-cloud/firestore" "^0.12.0"
    "@google-cloud/storage" "^1.6.0"
    "@types/google-cloud__storage" "^1.1.7"
    "@types/node" "^8.0.53"
    faye-websocket "0.9.3"
    jsonwebtoken "8.1.0"
    node-forge "0.7.1"

Но проблема все еще присутствует.

Спасибо, что поделились своим package.json, не могли бы вы рассказать мне, какова структура каталогов вашего проекта? Мы пока не поддерживаем монорепозитории, поэтому должна быть папка functions/node_modules/firebase-functions.

Конечно , @laurenzlong это структура каталогов моего проекта, она довольно большая из-за папки node_modules:

папка-structure.txt

С [email protected] (т.е. firebase CLI) опять появляется проблема, она не связана напрямую с функциями, но если откатиться на 3.17.4 эмуляция будет работать.
Я открыл соответствующую проблему в репозитории firebase-tools: firebase/firebase-tools#691.

@Rulsky с [email protected] выдает другую ошибку для очень простой функции:

// index.ts

import * as fbAdmin from "firebase-admin";
import * as fbFunctions from "firebase-functions";

fbAdmin.initializeApp(fbFunctions.config().firebase);

export const addMessage = fbFunctions.https.onRequest((request, response) => {
    const original = request.query.text;
    response.send(original);
});

Ошибка:

➜  functions yarn run shell
yarn run v1.5.1
$ yarn run build && firebase experimental:functions:shell
$ tsc
i  functions: Preparing to emulate functions.
⚠  functions: Failed to emulate addMessage
No functions emulated.
✨  Done in 12.71s.

Также я заметил, что файл журнала создается при запуске CLI firebase, но такой файл сразу же удаляется. Есть ли способ предотвратить удаление этого файла журнала?

@BernalCarlos Вы поместили ключ администратора службы в каталог functions вашего проекта? И сделали экспорт глобальной переменной GOOGLE_APPLICATION_CREDENTIALS в вашей оболочке?
крайне важно заставить его работать https://firebase.google.com/docs/functions/local-emulator

На самом деле вам не нужно устанавливать GOOGLE_APPLICATION_CREDENTIALS, если вы не используете аутентификацию Firebase или другие API Google. Итак , @BernalCarlos , я думаю, что ваша проблема такая же, как https://github.com/firebase/firebase-tools/issues/691 , которую я исправил и на которую ссылаюсь в этой проблеме.

У меня есть чистый проект только с функцией, которую создает CLI, и она не работает, когда я включаю const app = admin.initializeApp(functions.config().firebase); . Проект был настроен с
```
"зависимости": {
"firebase-admin": "~ 5.8.1",
"firebase-функции": "^0.8.1"
}
````

@Jhony0311 , вы, вероятно, также пострадали от # 691

Я могу использовать firebase deploy --only functions , но не firebase serve --only functions .

Он продолжает загружаться после выполнения «npm run serve»,

функции i: подготовка к эмуляции функций.
Предупреждение. Вы используете Node.js версии 10.5.0, но облачные функции Google поддерживают только версию 6.11.5.
⚠ функции: не удалось эмулировать getSomeData
функции i: функции HTTPS не найдены. Используйте firebase functions:shell , если вы хотите эмулировать другие типы функций.

firebase version: 3.19.3

Это мой код:

'use strict';

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

admin.initializeApp();

exports.getSomeData = functions.https.onRequest((req, res) => {
  admin.firestore().doc('feedback/d8pGxmML5ZKLYEy5jyhm').get()
    .then(doc => res.send(doc.data()))
    .catch(err => res.status(500).send(err));
});

Какие-либо предложения?

Привет, проблема с узлом 10
Используйте более старую версию. Версия 8, например.
4 июля 2018 г., 01:46 +0200, Николас Штурм, [email protected] , написал:

Я могу использовать функции firebase deploy --only, но firebase не обслуживает --only функции.
Он продолжает загружаться после выполнения «npm run serve»,
функции i: подготовка к эмуляции функций.
Предупреждение. Вы используете Node.js версии 10.5.0, но облачные функции Google поддерживают только версию 6.11.5.
⚠ функции: не удалось эмулировать getSomeData
функции i: функции HTTPS не найдены. Используйте firebase functions:shell , если вы хотите эмулировать другие типы функций.
версия firebase: 3.19.3
Это мой код:
'использовать строгий';

const functions = require('firebase-функции');
const admin = require('firebase-admin');

admin.initializeApp();

exports.getSomeData = functions.https.onRequest((req, res) => {
admin.firestore().doc('обратная связь/d8pGxmML5ZKLYEy5jyhm').get()
.then(doc => res.send(doc.data()))
.catch(ошибка => res.status(500).send(ошибка));
});
Какие-либо предложения?

Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub или отключите ветку.

На случай, если это поможет другим, я пытался использовать fulfillment Dialogflow, редактировать и тестировать код локально. У меня была эта ошибка. То, что решило это, было похоже на то, что сказал @rafasoares .

Чтобы решить эту проблему, мне пришлось скопировать используемый диалоговый поток package.json, а не сгенерированный firebase init . Кажется, проблема с версией.

У меня точно такая же проблема. Я думаю, что мы просто собираемся отказаться от использования переменных среды на различных этапах развертывания и просто использовать файл конфигурации JSON. Я хотел бы увидеть исправление, запуск npm абсолютно ничего не делает, чтобы исправить это.

В моем случае я исправил ошибку, сначала запустив firebase deploy , затем запустив firebase serve , и ошибка исчезла.

Я обновил все firebase-tools, firebase-admin, firebase-functions до последней версии.

"dependencies": {
    "firebase-admin": "^7.3.0",
    "firebase-functions": "^2.3.0",
    "googleapis": "^32.0.0",
    "mailgun-js": "^0.18.0",
    "moment": "^2.20.1",
    "request": "^2.81.0",
    "request-promise": "^4.2.1"
  },
  "private": true,
  "devDependencies": {
    "firebase-functions-test": "^0.1.2",
    "firebase-tools": "^6.8.0",
    "mocha": "^5.2.0",
    "rewire": "^4.0.1",
    "sinon": "^6.0.0",
    "underscore": "^1.9.1"
  },

Тем не менее, я все еще вижу эту ошибку, когда хочу запустить оболочку функций Firebase.

i  functions: Preparing to emulate functions.
⚠  functions: Failed to load functions source code. Ensure that you have the latest SDK by running npm i --save firebase-functions inside the functions directory.
⚠  functions: Error from emulator. Error occurred while parsing your function triggers.

@Randyanto привет, я не могу дать вам четкий ответ, но я могу дать вам некоторые подсказки. У меня тоже такая же ошибка. В моем случае я не мог хорошо работать require('firebase') . Итак, я попытался понизить версию ' [email protected] '.
Я сделал npm install --save [email protected] . Наконец-то я смог решить эту проблему.
Может быть, у вас есть проблема, связанная с firebase или другими функциями.
Проверьте зависимости каждой версии, которые у вас есть. Удачи.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги