web-dev-qa-db-fra.com

L'exécution locale des fonctions cloud génère l'erreur "functions.config () n'est pas disponible"

Cloud Functions for Firebase vient d'être publié récemment et je suis les instructions sur une nouvelle installation. Voici la page "Mise en route".

J'ai installé "npm install -g firebase-tools" et tous mes fichiers sont dans mon projet. J'utilise WebStorm 2016.3 et Node.JS v6.10.0.

J'ai les fonctions de connexion et d'initialisation de Firebase installées et configurées également. Mon installation. Here is my set up.

Mon package.json

 {
   "name": "functions",
   "description": "Cloud Functions for Firebase",
    "dependencies": {
     "firebase-admin": "^4.1.2",
     "firebase-functions": "^0.5"
   },
    "private": true
 }

Ces deux premières lignes de code fonctionnent.

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

Mais quand j'essaye d'exécuter cette ligne ...

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

Je reçois cette erreur.

 Error: functions.config() is not available. Please use the latest version of the Firebase CLI to deploy this function.
   at init (/Users/.../functions/node_modules/firebase-functions/lib/config.js:46:19)
   at Object.config (/Users/.../functions/node_modules/firebase-functions/lib/config.js:29:9)
   at Object.<anonymous> (/Users/.../functions/index.js:11: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.runMain (module.js:604:10)
   at run (bootstrap_node.js:394:7)

Qu'est-ce que j'oublie ici?

32
temp_

Si, comme moi, vous avez eu cette erreur en essayant d'exécuter vos fonctions localement, c'est parce que functions.config() n'est disponible que dans le runtime Cloud Functions.

Si vous essayez de tester vos fonctions avant de déployer, voici le lien vers la documentation sur la façon de le faire: exécuter les fonctions localement . Plus précisément, cette partie présente un intérêt:

Si vous utilisez des variables de configuration de fonctions personnalisées, exécutez la commande suivante dans le répertoire des fonctions de votre projet avant d'exécuter le serveur Firebase.

firebase functions:config:get > .runtimeconfig.json

Cependant, si vous utilisez Windows PowerShell, remplacez la commande ci-dessus par:

firebase functions:config:get | ac .runtimeconfig.json
47
Mitchell Gant

Il semble que vous ayez toujours une ancienne version de la CLI firebase, même si vous avez essayé d'installer la plus récente firebase-tools.

Vous pouvez vérifier en exécutant firebase --version. Cela devrait dire au moins 3.5.0. Si ce n'est pas le cas, vous voudrez exécuter npm install -g firebase-tools encore une fois, ce qui devrait, espérons-le, corriger les choses.

Si votre firebase --version continue d'afficher la mauvaise version, vous voudrez vérifier si vous avez accidentellement plusieurs versions de firebase-tools installée.

6

Je courais firebase deploy du mauvais dir. Espérons que cela fera gagner du temps à quelqu'un.

5
Doug