Firebase-tools: "fonctions : Échec du chargement du code source des fonctions. Assurez-vous que vous disposez du dernier SDK avant...."

Créé le 19 janv. 2018  ·  60Commentaires  ·  Source: firebase/firebase-tools

Informations sur les versions

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

Étapes à reproduire

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

Comportement réel

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

C'est très étrange, car dans d'autres projets, firebase serve --only functions se fige, et j'ai essayé un tas d'autres échantillons. Cela ne fonctionne dans aucun d'entre eux.

Cela ne fonctionne même pas pour les fonctions que j'ai déjà déployées.

Commentaire le plus utile

Essayez d'exécuter npm run serve depuis le répertoire des fonctions au lieu de firebase serve --only functions , cela peut ou non fonctionner selon la configuration de votre fichier package.json.

Tous les 60 commentaires

Essayez d'exécuter npm run serve depuis le répertoire des fonctions au lieu de firebase serve --only functions , cela peut ou non fonctionner selon la configuration de votre fichier package.json.

Malheureusement, je n'ai pas de package.json configuré pour cela.

> 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

Pouvez-vous m'en indiquer un?

Voici à quoi ressemble le mien après un nouveau firebase init : https://gist.github.com/dylanjmcdonald/6c033b476e863efaea3eccc0b3137772

J'ai réussi à contourner cette erreur en rétrogradant firebase-tools vers 3.16.0, depuis que l'erreur a commencé après la mise à jour vers 3.17.1

Histoire plus longue

Je suis tombé sur cette erreur pour la première fois dans mon coureur CI, car j'installais la dernière version de firebase-tools pour le déploiement. Du jour au lendemain, mes déploiements ont cessé de fonctionner. Ils ont recommencé à fonctionner après que j'ai mis à jour firebase-admin et firebase-functions .

Mais ensuite, mon environnement local a cessé de fonctionner. Je pouvais toujours déployer, mais je ne pouvais pas servir de fonctions. J'ai essayé de désinstaller firebase-tools et de réinstaller... Et toutes les variantes que j'ai pu trouver (nettoyage du cache, utilisation du dernier NPM, utilisation de 6.11.5, utilisation de Yarn, etc.). Pas de chance.

Enfin, j'ai décidé de tout ramener aux versions qui fonctionnaient auparavant et j'ai gelé la version utilisée dans mon script CI (au lieu d'utiliser la dernière) et maintenant les deux environnements fonctionnent de manière cohérente.

J'ai vu différentes variantes de ce problème avec différentes solutions possibles datant de quelques mois. C'est peut-être une régression ? Un problème sous-jacent obscur ?

BTW : J'exécute macOS High Sierra 10.13.2 localement et le nœud : la dernière image Docker pour mon coureur CI sur GitLab, si cela vous aide.

PS : D'après mon expérience, npm run dev exécute firebase serve --only functions en interne.

@rafasoares : merci, je peux confirmer que la rétrogradation vers la version 3.16.0 a corrigé l'erreur !

npm install -g [email protected]

J'utilise également macOS High Sierra 10.13.2, mais j'utilise le nœud v6.11.5 installé via nvm .

@The-Alchemist content d'avoir pu aider.

J'ai essayé les deux avec le dernier nœud installé via brew (9.x) et 6.11.5 installé via nvm. Il fonctionnait auparavant avec le dernier nœud (avec l'avertissement de version du nœud GCP, cependant).

Salut tout le monde, les derniers firebase-tools (3.17.1) nécessitent également le dernier SDK firebase-functions, donc la meilleure façon de résoudre les problèmes serait d'exécuter "npm i --save firebase-functions@latest " dans le dossier functions avant le déploiement ou la diffusion, comme le suggère le message d'erreur.

@laurenzlong avez-vous lu mon commentaire ci-dessus ? C'est la première chose que j'ai essayé. Après cela, j'ai pu firebase deploy --only functions , mais pas firebase serve --only functions .

Et j'ai essayé toutes sortes de stratégies de nettoyage que j'ai pu trouver. J'ai même supprimé ma copie de travail et tout extrait de Git à partir de zéro.

@rafasoares Excuses, j'ai raté cette partie. Je vais l'examiner maintenant.

Impressionnant! Merci!

La v3.17.2 est maintenant disponible et devrait avoir résolu le problème, veuillez me le faire savoir si ce n'est pas le cas. Merci pour le signalement !

Je viens d'essayer la v3.17.2, ça a marché pour moi !

Cela n'a pas fonctionné pour moi. J'ai réussi à le faire fonctionner sur un projet vierge, mais je n'ai pas pu faire fonctionner mon projet actuel.

Alors je suis allé creuser. Quelles sont les différences entre les deux ?

J'ai pu cerner le problème. Il casse quand j'ajoute ce morceau de code:

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

Si je supprime le bit d'initialisation, je peux servir les fonctions. Cependant, je ne peux pas utiliser Firestore.

Mise à jour : si je remplace l'appel functions.config().firebase par le JSON suivant, cela fonctionne :

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

Ce JSON était la sortie de functions.config().firebase lors de l'utilisation [email protected] (à l'exception du bit credential , que j'ai obtenu de la documentation.

Je n'ai pas essayé de déployer avec ce code, cependant.

@rafasoares J'ai rétrogradé la dépendance google-cloud/functions-emulator, c'est la différence. Essayez "npm uninstall -g firebase-tools & npm i -g firebase-tools". Selon la version de npm que vous avez, parfois, les dépendances ne sont pas rétrogradées à moins que vous ne procédiez d'abord à une désinstallation.

@rafasoares On dirait que j'ai eu une mauvaise version de Semver, je pense que je l'ai corrigé dans # 618, pouvez-vous essayer d'utiliser cette branche?

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

@laurenzlong

On dirait que je me suis trompé de version de semver, je pense que je l'ai corrigé dans # 618, pouvez-vous essayer d'utiliser cette branche?

J'ai eu le même problème que @rafasoares et j'ai essayé npm install -g https://github.com/firebase/firebase-tools.git#laurenzlong-patch-1 , mais le problème persiste.

En npm install -g [email protected] , le problème est résolu.

Je suis désolé, j'ai joué avec Yarn et NPM en essayant de leur faire télécharger la bonne version, j'ai probablement gâché mon environnement haha.

Mais oui, https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1 me donne toujours l'erreur, même si @google-cloud/[email protected] est la version installée.

@mono0926 @rafasoares Et ça ?
npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Merci pour votre patience et votre aide !

@laurenzlong

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

Cela me donne toujours l'erreur, malheureusement :(

qu'en est-il de npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu

@laurenzlong

qu'en est-il de npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

J'ai déjà essayé ça.

Apparemment https://github.com/firebase/firebase-tools.git#ll -fixemu le corrige pour moi.

$ 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

J'utilise actuellement le nœud v6.11.5. @ mono0926 peut-être que ça a quelque chose à voir avec ça ?

@rafasoares

J'utilise actuellement le nœud v6.11.5. @ mono0926 peut-être que ça a quelque chose à voir avec ça ?

J'utilise la même version de node 🤔

@ mono0926 ouais, je ne faisais que deviner. Je viens d'essayer d'utiliser la dernière version et cela a fonctionné.

Essayez de faire un nettoyage approfondi de vos dépendances globales et un nettoyage du cache (essayez également de reconstruire les dépendances locales de votre projet). Je l'ai fait plusieurs fois aujourd'hui en essayant de résoudre ce problème, cela a peut-être aidé.

@rachelmyers @laurenzlong

J'ai remarqué que le détail de l'erreur avait changé après avoir essayé npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu .

Et, l'erreur s'est produite au niveau de mon code, et je l'ai modifié, et après cela l'erreur a été résolue 👍

Si j'utilise [email protected] , l'erreur ne se produit pas sans modifier mon code.
Donc, je vous le dirai plus tard, j'ai enquêté sur le détail du problème.

@ mono0926 Cela vous dérangerait-il de partager avec nous ce que vous avez modifié dans votre code ? Était-ce quelque chose lié à Firebase ?

@rachelmyers @laurenzlong

J'ai enquêté là-dessus et j'ai compris le point.

Avec ce code,

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

L'erreur se produit :

TypeError: Cannot read property 'project_id' of undefined

Mais avec ce code,

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

Ce journal est imprimé :

info: environment: { project_id: 'development' }

Pourquoi ne puis-je pas accéder project_id sur functions.config().environment à la dernière version ?
J'ai pu accéder à project_id sur functions.config().environment sous [email protected] .

Je sais que c'est un autre problème avec ce problème.

Cela vous dérangerait-il de partager avec nous ce que vous avez modifié dans votre code ? Était-ce quelque chose lié à Firebase ?

Je corrige le problème en codant temporairement la valeur project_id , j'aimerais donc que vous corrigiez le problème.

Lorsque j'ai déployé les fonctions, le problème ne se produit pas.

@The-Alchemist Je le confirme moi aussi : la rétrogradation vers la version 3.16.0 a corrigé l'erreur !

npm install -g [email protected]

J'utilise également macOS High Sierra 10.13.2 et le nœud v8.9.4 installé par son programme d'installation avec une autorisation fixe : https://docs.npmjs.com/getting-started/fixing-npm-permissions.

Aucun problème avec [email protected] sous Windows.

Je reçois :

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

Marcus : --only functions (pluriel)

Le sam. 20 janvier 2018, 12 h 44 Marcus Hitchins [email protected]
a écrit:

Je reçois :

=== Servir depuis '/home/marcus/app'...

Erreur : Impossible de comprendre quelles cibles déployer. Vérifiez que vous avez spécifié des cibles valides si vous avez utilisé l'indicateur --only ou --except. Sinon, vérifiez votre firebase.json pour vous assurer que votre projet est initialisé pour les fonctionnalités souhaitées.


Vous recevez ceci parce que vous êtes abonné à ce fil.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/firebase/firebase-tools/issues/609#issuecomment-359200751 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAAD_tJH6ez89mjEZVdJbPVMDqeKym76ks5tMlAQgaJpZM4Rj8M0
.

@ mono0926 Nous n'avons jamais pris en charge les valeurs de configuration personnalisées à l'intérieur de l'émulateur, vous devez exécuter "firebase functions:config:get > .runtimeconfig.json" dans votre dossier de fonctions afin que les variables soient stockées dans .runtimeconfig.json et soient accessibles par le émulateur.

@ marcus7777 Je pense que c'est un problème distinct, capturé dans https://github.com/firebase/firebase-tools/issues/442

Je ferme ce problème maintenant puisque l'erreur signalée à l'origine est corrigée dans la v.3.17.3

C'est incroyable la rapidité avec laquelle cela a été traité. Super travail @laurenzlong. 👏

@laurenzlong

vous devez exécuter "firebase functions:config:get > .runtimeconfig.json" dans votre dossier de fonctions afin que les variables soient stockées dans .runtimeconfig.json et accessibles par l'émulateur.

Je vois. J'ai oublié d'écrire cette information.
C'est functions/.runtimeconfig.json :

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

J'ai pu accéder à functions.config().environment. project_id sous la v3.16.0, mais je ne peux pas accéder à la dernière version (v3.17.3).

@ mono0926 Pouvez-vous ouvrir un nouveau problème pour cela ? Et incluez également quelle version de firebase-functions vous utilisez ?

@laurenzlong

Pouvez-vous ouvrir un nouveau sujet pour cela ? Et incluez également quelle version de firebase-functions vous utilisez ?

Bon, j'ai ouvert un ticket 👍 : https://github.com/firebase/firebase-tools/issues/629

il suffit de mettre à jour vers 3.17.4 pour obtenir :

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$

et a essayé #442 mais sans succès.
ps. fonctionner sur xenial (Linux)

@ marcus7777 le problème que vous rencontrez n'est pas lié à ce problème. Essayez de supprimer firebase-tools et de le réinstaller. Si cela ne fonctionne pas, ouvrez un nouveau sujet.

J'ai également réussi à supprimer l'état local de l'émulateur :

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

et fichiers similaires.
Merci

Bonjour,

J'ai aussi ce problème avec [email protected].

Comme noté par @rafasoares le problème apparaît si j'ajoute cette ligne :

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

C'est l'erreur que j'obtiens :

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

De plus, lorsque je passe à [email protected] , je peux accéder au shell, mais une nouvelle erreur apparaît :

➜  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 Peut-être qu'il y a quelque chose qui me manque?

@BernalCarlos Comme le suggère le message d'erreur, assurez-vous que vous utilisez la dernière version des fonctions firebase. Exécutez ce qui suit dans votre répertoire de fonctions : `npm i --save firebase-functions@latest '

Ensuite, votre functions/package.json devrait avoir firebase-functions 0.8.1

@laurenzlong J'ai déjà la dernière version de firebase-functions. Voici mon 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
}

Dans le yarn.lock j'ai aussi ceci:

...

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"

Mais le problème est toujours présent.

Merci d'avoir partagé votre package.json, pouvez-vous me dire quelle est la structure du répertoire de votre projet ? Nous ne prenons pas encore en charge les dépôts mono, il doit donc y avoir un dossier functions/node_modules/firebase-functions.

Bien sûr @laurenzlong cette structure de répertoires de mon projet, c'est assez gros à cause du dossier node_modules :

dossier-structure.txt

Avec [email protected] (c'est-à-dire firebase CLI), le problème réapparaît, il n'est pas directement lié aux fonctions, mais si vous revenez à l'émulation 3.17.4, cela fonctionnera.
J'ai ouvert le problème correspondant dans le dépôt firebase-tools : firebase/firebase-tools#691

@Rulsky avec [email protected] , il échoue avec une erreur différente pour une fonction très 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);
});

Erreur:

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

J'ai également remarqué qu'un fichier journal est créé lorsque la CLI firebase est en cours d'exécution, mais ce fichier est supprimé immédiatement après. Existe-t-il un moyen d'empêcher la suppression de ce fichier journal ?

@BernalCarlos avez-vous mis la clé d'administration du service dans le répertoire functions votre projet ? Et fait une exportation de la variable globale GOOGLE_APPLICATION_CREDENTIALS dans votre shell ?
il est crucial de le faire fonctionner https://firebase.google.com/docs/functions/local-emulator

En fait, vous n'avez pas besoin de définir GOOGLE_APPLICATION_CREDENTIALS si vous n'utilisez pas l'authentification Firebase ou d'autres API Google. Donc @BernalCarlos , je pense que votre problème est le même que https://github.com/firebase/firebase-tools/issues/691 , pour lequel j'ai corrigé et lié à ce problème.

J'ai un projet propre juste avec la fonction que la CLI crée et ne fonctionne pas lorsque j'inclus const app = admin.initializeApp(functions.config().firebase); . Le projet a été monté avec
```
"dépendances": {
"firebase-admin": "~5.8.1",
"firebase-functions": "^0.8.1"
}
````

@ Jhony0311 vous êtes probablement aussi affecté par #691

Je peux utiliser firebase deploy --only functions mais pas firebase serve --only functions .

Il reste chargé après l'exécution de "npm run serve",

Fonctions i : Préparation à l'émulation de fonctions.
Avertissement : Vous utilisez Node.js v10.5.0, mais Google Cloud Functions n'est compatible qu'avec la version 6.11.5.
⚠ fonctions : Échec de l'émulation de getSomeData
Fonctions i : aucune fonction HTTPS trouvée. Utilisez firebase functions:shell si vous souhaitez émuler d'autres types de fonctions.

firebase version: 3.19.3

C'est mon code:

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

Aucune suggestion?

Salut, problème avec le noeud 10
Utilisez une version plus ancienne. Version 8, par exemple.
Le 4 juillet 2018, 01:46 +0200, Nicolas Sturm [email protected] , a écrit :

Je peux utiliser firebase deploy --only functions mais pas firebase serve --only functions.
Il reste chargé après l'exécution de "npm run serve",
Fonctions i : Préparation à l'émulation de fonctions.
Avertissement : Vous utilisez Node.js v10.5.0, mais Google Cloud Functions n'est compatible qu'avec la version 6.11.5.
⚠ fonctions : Échec de l'émulation de getSomeData
Fonctions i : aucune fonction HTTPS trouvée. Utilisez firebase functions:shell si vous souhaitez émuler d'autres types de fonctions.
version Firebase : 3.19.3
C'est mon code:
'utiliser strictement';

fonctions const = 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));
});
Aucune suggestion?

Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub ou désactivez le fil de discussion.

Au cas où cela aiderait les autres, j'essayais d'utiliser fulfillment s de Dialogflow et de modifier et tester le code localement. J'ai eu cette erreur. Ce qui l'a résolu était similaire à ce que @rafasoares a dit.

Pour résoudre ce problème, j'ai dû copier le package.json Dialogflow utilisé plutôt que celui firebase init généré. Apparemment c'est un problème de version.

J'ai exactement le même problème. Je pense que nous allons simplement renoncer à l'utilisation de variables d'environnement dans nos différentes étapes de déploiement et utiliser simplement un fichier de configuration JSON. J'aimerais voir un correctif, l'exécution de npm ne fait absolument rien pour résoudre ce problème.

Dans mon cas, j'ai corrigé le bogue en exécutant d'abord firebase deploy puis en exécutant $# firebase serve et le bogue a disparu

J'ai mis à jour tous les outils firebase, firebase-admin, firebase-functions vers le dernier

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

Cependant, je vois toujours cette erreur lorsque je veux exécuter le shell des fonctions 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 bonjour, je ne peux pas vous donner de réponse claire mais je peux vous donner quelques indices. J'ai eu la même erreur aussi. Dans mon cas, je ne pouvais pas bien travailler require('firebase') . J'ai donc essayé de rétrograder ' [email protected] '.
J'ai fait npm install --save [email protected] . Enfin, j'ai pu résoudre ce problème.
Peut-être avez-vous le problème de vous relier à Firebase ou à d'autres fonctions.
Vérifiez les dépendances de chaque version que vous avez. Bonne chance.

Cette page vous a été utile?
0 / 5 - 0 notes