Lorsque j'essaie de démarrer le shell pour des tests locaux à partir du répertoire des fonctions de mon projet, l'émulateur démarre mais mes fonctions ne peuvent pas être chargées.
Lorsque j'exécute "npm run build", je ne reçois aucune erreur. Qu'est-ce qui se passe?
J'ai essayé de supprimer le répertoire des fonctions et de le créer à nouveau en utilisant le cli firebase-tools mais j'obtiens toujours la même erreur. J'ai également exporté les informations d'identification d'administrateur.
J'utilise la méthode par défaut créée dans le fichier index.ts généré à partir du cli firebase-tools.
â functions: Emulator started at http://localhost:5001 â TypeError: _onRequestWithOpts is not a function at Object.httpsProvider._onRequestWithOpts (/usr/local/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:278:24) at Object.httpsProvider.onRequest (/usr/local/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:283:34) at Object.<anonymous> (/Volumes/G-DRIVE mobile USB-C/CLEAN UP/Documents/code_bank/typescript/theincrowdapp/functions/lib/index.js:9:38) at Module._compile (internal/modules/cjs/loader.js:776:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Module.require (internal/modules/cjs/loader.js:690:17) at require (internal/modules/cjs/helpers.js:25:18) â We were unable to load your functions code. (see above) - It appears your code is written in Typescript, which must be compiled before emulation. - You may be able to run "npm run build" in your functions directory to resolve this.
Je m'attends à ce que l'émulateur lance des instances de la fonction pour les tests, mais à la place, je vois cette erreur:
import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin'; admin.initializeApp(); // // Start writing Firebase Functions // // https://firebase.google.com/docs/functions/typescript // export const helloWorld = functions.https.onRequest((request, response) => { response.send("Hello from Firebase!"); });
6 Réponses :
Rétrograder la fonction Firebas à la version 3.0.0
J'ai trouvé une erreur dans:
node_modules / firebase-tools / lib / emulator / functionsEmulatorRuntime.js
ligne 276:
const _onRequestWithOpts = httpsProvider._onRequestWithOptions;
devrait être:
const _onRequestWithOpts = httpsProvider._onRequestWithOpts;
Si vous rencontrez cette erreur, exécutez npm install firebase-functions@3.0.2
dans votre répertoire de functions
.
Cela sera bientôt corrigé, et vous pouvez suivre ici: https://github.com/firebase/firebase-tools/issues/1480
Réponse fraîche très fiable. Merci!
Fonctionne parfaitement. Merci!
J'ai dû mettre à jour Firebase-tools vers la dernière version pour que cela fonctionne.
Supprimez node_modules puis exécutez npm install , npm install firebase-admin et npm install firebase-functions@3.0.2
J'ai fait face à cette erreur il y a un an et je l'ai encore affrontée hier malgré le fait que j'ai mis à jour firebase-funcitons au dernier.
J'ai également dû mettre à jour firebase-tools avec npm i -g firebase-tools@latest
Et la dernière chose que vous devez faire est de fermer votre ligne de commande / d'ouvrir un nouvel onglet afin que la dernière version soit utilisée
Pour résumer:
npm i firebase-functions@latest
npm i -g firebase-tools@latest
fermer et ouvrir la ligne de commande
J'ai eu le même problème mais je l'ai fait fonctionner avec la dernière version des packages firebase- * en procédant comme suit.
Firebase -> paramètres -> comptes de service "Générer une nouvelle clé privée" et enregistrez votre fichier dans votre répertoire de fonctions. Essayez de lui attribuer un nom tel que "service-account.json".
Sur votre ligne de commande (Mac par exemple) exécutez "export GOOGLE_APPLICATION_CREDENTIALS = <service_account_file_path>"
Modifiez tsconfig.json "strict": false, "noImplicitAny": false, "
Voila!
Si vous rencontrez des problèmes avec l'interface de ligne de commande Firebase, postez un problème sur GitHub et non sur Stack Overflow. github.com/firebase/firebase-tools
Je suis également confronté à ce problème après la mise à jour vers la dernière version
Je reçois la même erreur