Firebase-tools: "funciones: no se pudo cargar el código fuente de las funciones. Asegúrese de tener el SDK más reciente por..."

Creado en 19 ene. 2018  ·  60Comentarios  ·  Fuente: firebase/firebase-tools

Información de la versión

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

pasos para reproducir

> 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)

Comportamiento real

> 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)

Es muy extraño, porque en otros proyectos, firebase serve --only functions se congela, y probé un montón de otras muestras. No funciona en ninguno de ellos.

Incluso no funciona para las funciones que ya he implementado.

Comentario más útil

Intente ejecutar npm run serve desde dentro del directorio de funciones en lugar de firebase serve --only functions , esto puede o no funcionar dependiendo de cómo esté configurado su archivo package.json.

Todos 60 comentarios

Intente ejecutar npm run serve desde dentro del directorio de funciones en lugar de firebase serve --only functions , esto puede o no funcionar dependiendo de cómo esté configurado su archivo package.json.

Desafortunadamente, no tengo un paquete.json configurado para eso.

> 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

¿Puedes indicarme uno?

Así es como se ve el mío después de un nuevo firebase init : https://gist.github.com/dylanjmcdonald/6c033b476e863efaea3eccc0b3137772

Logré solucionar este error degradando firebase-tools a 3.16.0, ya que el error comenzó después de actualizar a 3.17.1

historia más larga

Me encontré con este error por primera vez en mi corredor de CI, porque estaba instalando la última versión de firebase-tools para la implementación. De la noche a la mañana, mis despliegues dejaron de funcionar. Comenzaron a funcionar nuevamente después de que actualicé firebase-admin y firebase-functions .

Pero luego mi entorno local dejó de funcionar. Todavía podía implementar, pero no podía cumplir funciones. Intenté desinstalar firebase-tools y volver a instalar... Y todas las variaciones que se me ocurrieron (limpiar caché, usar el NPM más reciente, usar 6.11.5, usar Yarn, etc.). Sin suerte.

Finalmente, decidí revertir todo a las versiones que funcionaban antes y congelé la versión utilizada en mi script de CI (en lugar de usar la última) y ahora ambos entornos funcionan de manera consistente.

He visto diferentes variaciones de este problema con diferentes soluciones posibles que datan de hace unos meses. ¿Quizás es una regresión? ¿Algún oscuro problema subyacente?

Por cierto: estoy ejecutando macOS High Sierra 10.13.2 localmente y el nodo: la última imagen de Docker para mi corredor de CI en GitLab, si eso ayuda.

PD: En mi experiencia, npm run dev ejecuta firebase serve --only functions internamente.

@rafasoares : gracias, ¡puedo confirmar que la actualización a 3.16.0 solucionó el error!

npm install -g [email protected]

También estoy usando macOS High Sierra 10.13.2, pero estoy usando el nodo v6.11.5 instalado a través nvm .

@ The-Alchemist me alegro de haber podido ayudar.

Probé ambos con el último nodo instalado a través de brew (9.x) y 6.11.5 instalado a través de nvm. Antes funcionaba con el nodo más reciente (aunque con la advertencia de versión del nodo de GCP).

Hola a todos, la última versión de firebase-tools (3.17.1) también requiere el último SDK de funciones de firebase, por lo que la mejor manera de resolver los problemas sería ejecutar "npm i --save firebase-functions@latest " dentro de la carpeta de funciones. antes de implementar o servir, como sugiere el mensaje de error.

@laurenzlong , ¿leyó mi comentario anterior? Fue lo primero que probé. Después de eso, pude firebase deploy --only functions , pero no firebase serve --only functions .

Y probé todo tipo de estrategias de limpieza que se me ocurrieron. Incluso eliminé mi copia de trabajo y saqué todo de Git desde cero.

@rafasoares Disculpas, me perdí esa parte. Lo investigaré ahora.

¡Impresionante! ¡Gracias!

v3.17.2 ahora se ha lanzado y debería haber solucionado el problema, avíseme si no es así. ¡Gracias por informar!

¡Acabo de probar v3.17.2, funcionó para mí!

No funcionó para mí. Logré que funcionara en un proyecto en blanco, pero no pude hacer que mi proyecto actual funcionara.

Así que fui a cavar. ¿Cuáles son las diferencias entre los dos?

Pude identificar el problema. Se rompe cuando agrego este bit de código:

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

Si elimino el bit de inicialización, puedo cumplir las funciones. Sin embargo, no puedo usar Firestore.

Actualización: si reemplazo la llamada functions.config().firebase con el siguiente JSON, funciona:

{
  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()
}

Ese JSON fue el resultado de functions.config().firebase al usar [email protected] (con la excepción del bit credential , que obtuve de los documentos.

Sin embargo, no he intentado implementar con este código.

@rafasoares Rebajé la dependencia de google-cloud/functions-emulator, esa es la diferencia. Pruebe "npm uninstall -g firebase-tools & npm i -g firebase-tools". Dependiendo de la versión de npm que tenga, a veces no degrada las dependencias a menos que realice una desinstalación primero.

@rafasoares Parece que me equivoqué en la versión de Semver, creo que lo arreglé en el n. ° 618, ¿puedes intentar usar esa rama?

npm install -g https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1

@laurenzlong

Parece que me equivoqué en la versión de Semver, creo que lo arreglé en el n. ° 618, ¿puedes intentar usar esa rama?

Tuve el mismo problema que @rafasoares , y probé npm install -g https://github.com/firebase/firebase-tools.git#laurenzlong-patch-1 , pero el problema persiste.

Por npm install -g [email protected] , el problema está resuelto.

Lo siento, he estado jugando con Yarn y NPM tratando de que descarguen la versión correcta, probablemente arruiné mi entorno jaja.

Pero sí, https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1 todavía me da el error, aunque @google-cloud/[email protected] es la versión instalada.

@mono0926 @rafasoares ¿Qué tal esto?
npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

¡Gracias por su paciencia y ayuda!

@laurenzlong

npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Esto todavía me da el error, desafortunadamente :(

que tal npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu

@laurenzlong

¿Qué pasa con npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Ya probé eso.

Aparentemente https://github.com/firebase/firebase-tools.git#ll -fixemu me lo arregla.

$ 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

Actualmente estoy usando el nodo v6.11.5. @ mono0926 ¿ quizás eso tenga algo que ver?

@rafasoares

Actualmente estoy usando el nodo v6.11.5. @ mono0926 ¿ quizás eso tenga algo que ver?

Estoy usando la misma versión de nodo 🤔

@ mono0926 sí, solo estaba suponiendo. Intenté usar la última y funcionó.

Intente hacer una limpieza completa de sus dependencias globales y una limpieza de caché (también, intente reconstruir las dependencias locales de su proyecto). Lo he hecho varias veces hoy mientras intentaba resolver este problema, tal vez ayudó.

@rachelmyers @laurenzlong

Noté que el detalle del error cambió después de probar npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu .

Y, el error ocurrió en mi código, lo modifiqué y luego se resolvió el error 👍

Si uso [email protected] , el error no ocurre sin modificar mi código.
Entonces, les diré más tarde, investigué los detalles del problema.

@ mono0926 ¿Le importaría compartir con nosotros lo que cambió en su código? ¿Fue algo relacionado con Firebase?

@rachelmyers @laurenzlong

Investigué eso y descubrí el punto.

Con este código,

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

El error ocurre:

TypeError: Cannot read property 'project_id' of undefined

Pero con este código,

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

Este registro se imprime:

info: environment: { project_id: 'development' }

¿Por qué no puedo acceder a project_id de functions.config().environment en la última versión?
Pude acceder a project_id de functions.config().environment bajo [email protected] .

Sé que este es otro problema con este problema.

¿Le importaría compartir con nosotros lo que cambió en su código? ¿Fue algo relacionado con Firebase?

Solucioné el problema codificando project_id temporalmente, por lo que me gustaría que lo solucione.

Cuando implementé las funciones, el problema no ocurre.

@The-Alchemist Yo también lo confirmo: ¡bajar a 3.16.0 solucionó el error!

npm install -g [email protected]

También estoy usando macOS High Sierra 10.13.2 y el nodo v8.9.4 instalado por su instalador con permiso fijo: https://docs.npmjs.com/getting-started/fixing-npm-permissions.

No hay problemas con [email protected] en Windows.

Yo obtengo :

+ [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'

Marco: --only functions (plural)

El sábado 20 de enero de 2018 a las 12:44 p. m. Marcus Hitchins [email protected]
escribió:

Yo obtengo :

=== Sirviendo desde '/home/marcus/app'...

Error: no se puede entender qué objetivos implementar. Verifique que especificó objetivos válidos si usó el indicador --only o --except. De lo contrario, verifique su firebase.json para asegurarse de que su proyecto esté inicializado para las funciones deseadas.


Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/firebase/firebase-tools/issues/609#issuecomment-359200751 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AAAD_tJH6ez89mjEZVdJbPVMDqeKym76ks5tMlAQgaJpZM4Rj8M0
.

@mono0926 Nunca admitimos valores de configuración personalizados dentro del emulador, debe ejecutar "firebase functions:config:get > .runtimeconfig.json" dentro de su carpeta de funciones para que las variables se almacenen en .runtimeconfig.json y el usuario pueda acceder a ellas. emulador

@ marcus7777 Creo que este es un problema separado, capturado en https://github.com/firebase/firebase-tools/issues/442

Estoy cerrando este problema ahora ya que el error informado originalmente se solucionó en v.3.17.3

Es increíble lo rápido que se resolvió esto. Impresionante trabajo @laurenzlong. 👏

@laurenzlong

necesita ejecutar "firebase functions:config:get > .runtimeconfig.json" dentro de su carpeta de funciones para que las variables se almacenen en .runtimeconfig.json y el emulador pueda acceder a ellas.

Veo. Olvidé escribir esta información.
Esto es functions/.runtimeconfig.json :

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

Pude acceder a functions.config().environment. project_id en la versión 3.16.0, pero no puedo acceder a la última versión (v3.17.3).

@ mono0926 ¿Puedes abrir una nueva edición para esto? ¿Y también incluye qué versión de firebase-functions estás usando?

@laurenzlong

¿Puedes abrir un nuevo número para esto? ¿Y también incluye qué versión de firebase-functions estás usando?

De acuerdo, abrí un problema 👍: https://github.com/firebase/firebase-tools/issues/629

solo actualice a 3.17.4 aún obtenga:

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$

y probó el #442 pero no tuvo suerte.
PD. ejecutar en xenial (Linux)

@ marcus7777 el problema al que se enfrenta no está relacionado con este problema. Intente eliminar firebase-tools y volver a instalarlo. Si no funciona, abre un nuevo problema.

También tuve éxito al eliminar el estado local del emulador:

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

y archivos similares.
Gracias

Hola,

También tengo este problema con [email protected].

Como lo señaló @rafasoares , el problema aparece si agrego esta línea:

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

Este es el error que estoy recibiendo:

➜  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.

Además, cuando cambio a [email protected] , puedo acceder al shell, pero aparece un nuevo error:

➜  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 ¿ Quizás hay algo que me estoy perdiendo?

@BernalCarlos Como sugiere el mensaje de error, asegúrese de tener la última versión de funciones de base de fuego. Ejecute lo siguiente en su directorio de funciones: `npm i --save firebase-functions@latest '

Luego, su functions/package.json debería tener firebase-functions 0.8.1

@laurenzlong Ya tengo la última versión de firebase-functions. Este es mi paquete.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
}

En el yarn.lock también tengo esto:

...

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"

Pero el problema sigue presente.

Gracias por compartir su paquete.json, ¿puede decirme cuál es la estructura del directorio de su proyecto? Todavía no admitimos repositorios mono, por lo que debe haber una carpeta functions/node_modules/firebase-functions.

Claro , @laurenzlong , esta es la estructura de directorios de mi proyecto, es bastante grande debido a la carpeta node_modules:

carpeta-estructura.txt

Con [email protected] (es decir, Firebase CLI), el problema vuelve a aparecer, no está relacionado directamente con las funciones, pero si vuelve a 3.17.4, la emulación funcionará.
Abrí el problema correspondiente en el repositorio de firebase-tools: firebase/firebase-tools#691

@Rulsky con [email protected] , falla con un error diferente para una función muy simple:

// 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);
});

Error:

➜  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.

También noté que se crea un archivo de registro cuando se ejecuta Firebase CLI, pero dicho archivo se elimina inmediatamente después. ¿Hay alguna manera de evitar que se elimine este archivo de registro?

@BernalCarlos , ¿ha puesto la clave de administración del servicio en el directorio functions de su proyecto? ¿Y realizó una exportación de la variable global GOOGLE_APPLICATION_CREDENTIALS en su shell?
es crucial para que funcione https://firebase.google.com/docs/functions/local-emulator

En realidad, no necesita configurar GOOGLE_APPLICATION_CREDENTIALS si no está utilizando la autenticación de Firebase u otras API de Google. Entonces, @BernalCarlos , creo que su problema es el mismo que https://github.com/firebase/firebase-tools/issues/691 , que solucioné y vinculé en ese problema.

Tengo un proyecto limpio solo con la función que crea la CLI y no funciona cuando incluyo const app = admin.initializeApp(functions.config().firebase); . El proyecto se armó con
```
"dependencias": {
"firebase-admin": "~5.8.1",
"firebase-funciones": "^0.8.1"
}
````

@Jhony0311 probablemente también te afecte el #691

Puedo usar firebase deploy --only functions pero no firebase serve --only functions .

Se queda cargando después de ejecutar "npm run serve",

i funciones: Preparación para emular funciones.
Advertencia: está utilizando Node.js v10.5.0 pero Google Cloud Functions solo es compatible con v6.11.5.
⚠ funciones: no se pudo emular getSomeData
i funciones: No se encontraron funciones HTTPS. Use firebase functions:shell si desea emular otros tipos de funciones.

firebase version: 3.19.3

Este es mi código:

'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));
});

¿Alguna sugerencia?

hola problema con el nodo 10
Utilice una versión anterior. La versión 8, por ejemplo.
El 4 de julio de 2018, 01:46 +0200, Nicolas Sturm [email protected] , escribió:

Puedo usar firebase deployment --only functions pero no firebase serve --only functions.
Se queda cargando después de ejecutar "npm run serve",
i funciones: Preparación para emular funciones.
Advertencia: está utilizando Node.js v10.5.0 pero Google Cloud Functions solo es compatible con v6.11.5.
⚠ funciones: no se pudo emular getSomeData
i funciones: No se encontraron funciones HTTPS. Use firebase functions:shell si desea emular otros tipos de funciones.
versión de base de fuego: 3.19.3
Este es mi código:
'uso estricto';

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

admin.initializeApp();

exportaciones.getSomeData = functions.https.onRequest((req, res) => {
admin.firestore().doc('retroalimentación/d8pGxmML5ZKLYEy5jyhm').get()
.then(doc => res.send(doc.datos()))
.catch(err => res.status(500).send(err));
});
¿Alguna sugerencia?

Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub o silencie el hilo.

En caso de que ayude a otros, estaba tratando de usar fulfillment s de Dialogflow y editar y probar el código localmente. Tuve este error. Lo solucionado fue parecido a lo que dijo @rafasoares .

Para resolver esto, tuve que copiar el paquete.json Dialogflow usado en lugar del firebase init generado. Parece ser un problema de versiones.

Tengo exactamente el mismo problema. Creo que solo vamos a dejar de usar variables ambientales en nuestras diversas etapas de implementación y solo usaremos un archivo de configuración JSON. Me encantaría ver una solución, ejecutar npm no hace absolutamente nada para solucionar esto.

En mi caso, arreglé el error ejecutando firebase deploy primero, luego ejecuté firebase serve y el error desapareció.

He actualizado todas las herramientas de firebase, firebase-admin, firebase-functions a la última

"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"
  },

Sin embargo, sigo viendo este error cuando quiero ejecutar el shell de funciones de 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 hola, no puedo darte una respuesta clara, pero puedo darte algunas pistas. Recibí el mismo error también. En mi caso, no pude trabajar bien require('firebase') . Entonces, intenté degradar ' [email protected] '.
Hice npm install --save [email protected] . Finalmente, pude resolver este problema.
Tal vez tenga el problema de relacionarse con firebase u otras funciones.
Compruebe las dependencias de cada versión que tiene. Buena suerte.

¿Fue útil esta página
0 / 5 - 0 calificaciones