Firebase-tools: "Funktionen: Funktionsquellcode konnte nicht geladen werden. Stellen Sie sicher, dass Sie das neueste SDK von ... haben."

Erstellt am 19. Jan. 2018  ·  60Kommentare  ·  Quelle: firebase/firebase-tools

Versions Information

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

Schritte zum Reproduzieren

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

Tatsächliches Verhalten

> 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 ist sehr seltsam, denn in anderen Projekten friert firebase serve --only functions ein und ich habe eine Reihe anderer Samples ausprobiert. Bei keinem funktioniert es.

Es funktioniert nicht einmal für Funktionen, die ich bereits bereitgestellt habe.

Hilfreichster Kommentar

Versuchen Sie, npm run serve innerhalb des Funktionsverzeichnisses anstelle von firebase serve --only functions auszuführen, dies funktioniert möglicherweise oder nicht, je nachdem, wie Ihre Datei package.json konfiguriert ist.

Alle 60 Kommentare

Versuchen Sie, npm run serve innerhalb des Funktionsverzeichnisses anstelle von firebase serve --only functions auszuführen, dies funktioniert möglicherweise oder nicht, je nachdem, wie Ihre Datei package.json konfiguriert ist.

Leider habe ich dafür keine package.json konfiguriert.

> 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

Können Sie mir einen zeigen?

So sieht meiner nach einem frischen firebase init aus: https://gist.github.com/dylanjmcdonald/6c033b476e863efaea3eccc0b3137772

Ich habe es geschafft, diesen Fehler zu umgehen, indem ich firebase-tools auf 3.16.0 heruntergestuft habe, da der Fehler auftrat, nachdem ich auf 3.17.1 aktualisiert hatte

Längere Geschichte

Ich bin zum ersten Mal auf diesen Fehler in meinem CI-Runner gestoßen, weil ich die neueste Version von firebase-tools für die Bereitstellung installiert habe. Über Nacht funktionierten meine Bereitstellungen nicht mehr. Sie funktionierten wieder, nachdem ich firebase-admin und firebase-functions aktualisiert hatte.

Aber dann funktionierte meine lokale Umgebung nicht mehr. Ich konnte immer noch bereitstellen, aber keine Funktionen bedienen. Ich habe versucht, firebase-tools zu deinstallieren und neu zu installieren ... Und alle Variationen, die mir eingefallen sind (Cache leeren, das neueste NPM verwenden, 6.11.5 verwenden, Yarn verwenden usw.). Kein Glück.

Schließlich entschied ich mich, alles auf die Versionen zurückzusetzen, die zuvor funktionierten, und fror die Version ein, die in meinem CI-Skript verwendet wurde (anstatt die neueste zu verwenden), und jetzt funktionieren beide Umgebungen konsistent.

Ich habe verschiedene Variationen dieses Problems mit verschiedenen möglichen Lösungen gesehen, die einige Monate zurückliegen. Vielleicht ist es ein Rückfall? Ein obskures zugrunde liegendes Problem?

Übrigens: Ich verwende macOS High Sierra 10.13.2 lokal und das node:latest Docker-Image für meinen CI-Runner auf GitLab, falls das hilft.

PS: Meiner Erfahrung nach läuft $#$ npm run dev firebase serve --only functions .

@rafasoares : Danke, kann bestätigen, dass das Downgrade auf 3.16.0 den Fehler behoben hat!

npm install -g [email protected]

Ich verwende auch macOS High Sierra 10.13.2, aber ich verwende den Knoten v6.11.5, der über nvm installiert wurde.

@The-Alchemist froh, dass ich helfen konnte.

Ich habe beides mit dem neuesten Knoten versucht, der über brew (9.x) und 6.11.5 installiert wurde, der über nvm installiert wurde. Es funktionierte zuvor mit dem neuesten Knoten (allerdings mit der Warnung der GCP-Knotenversion).

Hallo zusammen, die neuesten Firebase-Tools (3.17.1) erfordern auch das neueste Firebase-Functions SDK, daher wäre der bessere Weg, die Probleme zu lösen, "npm i --save firebase -functions@latest " im Funktionsordner auszuführen vor dem Bereitstellen oder Bereitstellen, wie die Fehlermeldung vermuten lässt.

@laurenzlong hast du meinen Kommentar oben gelesen? Es war das erste, was ich versuchte. Danach konnte ich firebase deploy --only functions , aber nicht firebase serve --only functions .

Und ich habe alle möglichen Aufräumstrategien ausprobiert, die mir eingefallen sind. Ich habe sogar meine Arbeitskopie gelöscht und alles von Grund auf neu aus Git gezogen.

@rafasoares Entschuldigung, ich habe diesen Teil verpasst. Ich probier es jetzt aus.

Genial! Danke!

v3.17.2 wurde jetzt veröffentlicht und sollte das Problem behoben haben, bitte lassen Sie es mich wissen, wenn dies nicht der Fall ist. Danke fürs Melden!

Habe gerade v3.17.2 ausprobiert, hat bei mir funktioniert!

Es hat bei mir nicht funktioniert. Ich habe es geschafft, es an einem leeren Projekt zum Laufen zu bringen, aber ich konnte mein aktuelles Projekt nicht zum Laufen bringen.

Also ging ich graben. Was sind die Unterschiede zwischen den beiden?

Ich konnte das Problem lokalisieren. Es bricht, wenn ich diesen Code hinzufüge:

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

Wenn ich das Initialisierungsbit entferne, kann ich die Funktionen bedienen. Allerdings kann ich Firestore nicht verwenden.

Update: Wenn ich den Aufruf functions.config().firebase durch folgendes JSON ersetze, funktioniert es:

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

Dieser JSON war die Ausgabe von functions.config().firebase bei Verwendung [email protected] (mit Ausnahme des Bits credential , das ich aus den Dokumenten erhalten habe.

Ich habe jedoch nicht versucht, mit diesem Code bereitzustellen.

@rafasoares Ich habe die Abhängigkeit von google-cloud/functions-emulator herabgestuft, das ist der Unterschied. Versuchen Sie "npm uninstall -g firebase-tools & npm i -g firebase-tools". Abhängig von der npm-Version, die Sie haben, werden Abhängigkeiten manchmal nicht heruntergestuft, es sei denn, Sie führen zuerst eine Deinstallation durch.

@rafasoares Scheint, als hätte ich die Semver-Versionierung falsch verstanden, ich glaube, ich habe es in # 618 behoben. Können Sie versuchen, diesen Zweig zu verwenden?

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

@laurinlong

Scheint, als hätte ich die Semver-Versionierung falsch verstanden, ich glaube, ich habe es in #618 behoben, können Sie versuchen, diesen Zweig zu verwenden?

Ich hatte das gleiche Problem wie @rafasoares und habe es mit npm install -g https://github.com/firebase/firebase-tools.git#laurenzlong-patch-1 versucht, aber das Problem bleibt bestehen.

Mit npm install -g [email protected] ist das Problem gelöst.

Es tut mir leid, ich habe mit Yarn und NPM herumgespielt, um sie dazu zu bringen, die richtige Version herunterzuladen, ich habe wahrscheinlich meine Umgebung durcheinander gebracht, haha.

Aber ja, https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1 gibt mir immer noch den Fehler, obwohl @google-cloud/[email protected] die installierte Version ist.

@mono0926 @rafasoares Wie wäre es damit?
npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Danke für deine Geduld und Hilfe!

@laurinlong

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

Das gibt mir leider immer noch den Fehler :(

was ist mit npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu

@laurinlong

was ist mit npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Das habe ich schon versucht.

Anscheinend https://github.com/firebase/firebase-tools.git#ll -fixemu behebt es für mich.

$ 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

Ich verwende derzeit den Knoten v6.11.5. @mono0926 vielleicht hat das damit zu tun?

@rafasoares

Ich verwende derzeit den Knoten v6.11.5. @mono0926 vielleicht hat das damit zu tun?

Ich verwende dieselbe Version von node 🤔

@mono0926 Ja, ich habe nur geraten. Ich habe gerade versucht, die neueste Version zu verwenden, und es hat funktioniert.

Versuchen Sie, Ihre globalen Abhängigkeiten gründlich zu bereinigen und den Cache zu bereinigen (versuchen Sie auch, die lokalen Abhängigkeiten Ihres Projekts neu zu erstellen). Ich habe das heute mehrmals gemacht, als ich versucht habe, dieses Problem zu lösen, vielleicht hat es geholfen.

@rachelmyers @laurenzlong

Ich habe festgestellt, dass sich die Fehlerdetails geändert haben, nachdem ich npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu versucht habe.

Und der Fehler trat bei meinem Code auf, und ich habe ihn geändert, und danach wurde der Fehler behoben 👍

Wenn ich [email protected] verwende, tritt der Fehler nicht auf, ohne meinen Code zu ändern.
Also, ich erzähle es Ihnen später, ich habe das Problem im Detail untersucht.

@mono0926 Hast du etwas dagegen, uns mitzuteilen, was du an deinem Code geändert hast? Hatte es etwas mit Firebase zu tun?

@rachelmyers @laurenzlong

Ich habe das recherchiert und bin auf den Punkt gekommen.

Mit diesem Code

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

Der Fehler tritt auf:

TypeError: Cannot read property 'project_id' of undefined

Aber mit diesem Code

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

Dieses Protokoll wird gedruckt:

info: environment: { project_id: 'development' }

Warum kann ich nicht auf die neueste Version von $ project_id von functions.config().environment zugreifen?
Ich konnte auf project_id von functions.config().environment unter [email protected] zugreifen.

Ich weiß, dass dies ein weiteres Problem mit diesem Problem ist.

Können Sie uns mitteilen, was Sie an Ihrem Code geändert haben? Hatte es etwas mit Firebase zu tun?

Ich behebe das Problem, indem ich den Wert von project_id vorübergehend fest codiere, also möchte ich, dass Sie das Problem beheben.

Wenn ich die Funktionen bereitgestellt habe, tritt das Problem nicht auf.

@The-Alchemist Ich bestätige es mir auch: Downgrade auf 3.16.0 hat den Fehler behoben!

npm install -g [email protected]

Ich verwende auch macOS High Sierra 10.13.2 und den Knoten v8.9.4, der vom Installationsprogramm mit fester Berechtigung installiert wurde: https://docs.npmjs.com/getting-started/fixing-npm-permissions.

Keine Probleme mit [email protected] unter Windows.

Ich bekomme :

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

Markus: --only functions (Plural)

Am Samstag, 20. Januar 2018, 12:44 Uhr Marcus Hitchins [email protected]
schrieb:

Ich bekomme :

=== Bereitstellung von '/home/marcus/app'...

Fehler: Kann nicht verstehen, welche Ziele bereitgestellt werden sollen. Überprüfen Sie, ob Sie gültige Ziele angegeben haben, wenn Sie das Flag --only oder --except verwendet haben. Überprüfen Sie andernfalls Ihre firebase.json, um sicherzustellen, dass Ihr Projekt für die gewünschten Funktionen initialisiert ist.


Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/firebase/firebase-tools/issues/609#issuecomment-359200751 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AAAD_tJH6ez89mjEZVdJbPVMDqeKym76ks5tMlAQgaJpZM4Rj8M0
.

@mono0926 Wir haben nie benutzerdefinierte Konfigurationswerte innerhalb des Emulators unterstützt, Sie müssen "firebase functions:config:get > .runtimeconfig.json" in Ihrem Funktionsordner ausführen, damit die Variablen in .runtimeconfig.json gespeichert werden und von der aufgerufen werden können Emulator.

@ marcus7777 Ich denke, dies ist ein separates Problem, das in https://github.com/firebase/firebase-tools/issues/442 erfasst ist

Ich schließe dieses Problem jetzt, da der ursprünglich gemeldete Fehler in v.3.17.3 behoben wurde

Erstaunlich, wie schnell das abgehandelt wurde. Tolle Arbeit @laurenzlong. 👏

@laurinlong

Sie müssen "firebase functions:config:get > .runtimeconfig.json" in Ihrem Funktionsordner ausführen, damit die Variablen in .runtimeconfig.json gespeichert werden und vom Emulator darauf zugegriffen werden kann.

Ich verstehe. Ich habe vergessen, diese Informationen zu schreiben.
Das ist functions/.runtimeconfig.json :

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

Ich konnte unter v3.16.0 auf functions.config().environment. project_id zugreifen, aber ich kann nicht auf die neueste Version (v3.17.3) zugreifen.

@mono0926 Kannst du dafür ein neues Thema eröffnen? Und geben Sie auch an, welche Version der Firebase-Funktionen Sie verwenden?

@laurinlong

Kannst du dazu ein neues Thema aufmachen? Und geben Sie auch an, welche Version der Firebase-Funktionen Sie verwenden?

Okay, ich habe ein Issue eröffnet 👍 : https://github.com/firebase/firebase-tools/issues/629

aktualisiere einfach auf 3.17.4 und erhalte immer noch:

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$

und hat #442 versucht, aber kein Glück.
p.s. läuft auf xenial (Linux)

@ marcus7777 Das Problem, mit dem Sie konfrontiert sind, hat nichts mit diesem Problem zu tun. Versuchen Sie, firebase-tools zu entfernen und neu zu installieren. Wenn es nicht funktioniert, öffnen Sie ein neues Problem.

Ich hatte auch Erfolg beim Löschen des lokalen Status des Emulators:

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

und ähnliche Dateien.
Danke

Hallo,

Ich habe dieses Problem auch mit [email protected].

Wie von @rafasoares bemerkt, tritt das Problem auf, wenn ich diese Zeile hinzufüge:

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

Dies ist der Fehler, den ich bekomme:

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

Auch wenn ich auf [email protected] downgrade, kann ich auf die Shell zugreifen, aber es erscheint ein neuer Fehler:

➜  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 Vielleicht fehlt mir etwas?

@BernalCarlos Wie die Fehlermeldung andeutet, stellen Sie bitte sicher, dass Sie die neueste Version der Firebase-Funktionen verwenden. Führen Sie Folgendes in Ihrem Funktionsverzeichnis aus: `npm i --save firebase -functions@latest '

Danach sollte Ihre functions/package.json firebase-functions 0.8.1 haben

@laurenzlong Ich habe bereits die neueste Version der Firebase-Funktionen. Dies ist mein Paket.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
}

In der wool.lock habe ich auch das:

...

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"

Aber das Problem ist immer noch vorhanden.

Vielen Dank, dass Sie Ihre package.json geteilt haben. Können Sie mir sagen, wie Ihre Projektverzeichnisstruktur aussieht? Wir unterstützen noch keine Mono-Repos, daher muss ein Ordner functions/node_modules/firebase-functions vorhanden sein.

Sicher, @laurenzlong , das ist meine Projektverzeichnisstruktur, sie ist wegen des node_modules-Ordners ziemlich groß:

Ordnerstruktur.txt

Mit [email protected] (dh Firebase CLI) tritt das Problem erneut auf, es bezieht sich nicht direkt auf Funktionen, aber wenn Sie auf 3.17.4 zurücksetzen, funktioniert die Emulation.
Ich habe das entsprechende Problem im Firebase-Tools-Repo geöffnet: firebase/firebase-tools#691

@Rulsky mit [email protected] schlägt es mit einem anderen Fehler für eine sehr einfache Funktion fehl:

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

Fehler:

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

Außerdem ist mir aufgefallen, dass eine Protokolldatei erstellt wird, wenn die Firebase-CLI ausgeführt wird, diese Datei jedoch sofort danach gelöscht wird. Gibt es eine Möglichkeit zu verhindern, dass diese Protokolldatei gelöscht wird?

@BernalCarlos haben Sie den Dienstadministratorschlüssel in das functions -Verzeichnis Ihres Projekts eingefügt? Und einen Export der globalen Variablen GOOGLE_APPLICATION_CREDENTIALS in Ihre Shell gemacht?
Es ist wichtig, dass es funktioniert https://firebase.google.com/docs/functions/local-emulator

Sie müssen GOOGLE_APPLICATION_CREDENTIALS eigentlich nicht festlegen, wenn Sie die Firebase-Authentifizierung oder andere Google-APIs nicht verwenden. Also @BernalCarlos Ich denke, Ihr Problem ist das gleiche wie https://github.com/firebase/firebase-tools/issues/691 , das ich in diesem Problem behoben und verlinkt habe.

Ich habe ein sauberes Projekt nur mit der Funktion, die die CLI erstellt und nicht funktioniert, wenn ich const app = admin.initializeApp(functions.config().firebase); . Das Projekt wurde mit eingerichtet
```
"Abhängigkeiten": {
"firebase-admin": "~5.8.1",
"firebase-functions": "^0.8.1"
}
````

@ Jhony0311 Sie sind wahrscheinlich auch von # 691 betroffen

Ich kann firebase deploy --only functions verwenden, aber kein firebase serve --only functions .

Es bleibt geladen, nachdem "npm run serve" ausgeführt wurde.

i Funktionen: Vorbereitung zum Emulieren von Funktionen.
Warnung: Sie verwenden Node.js v10.5.0, aber Google Cloud Functions unterstützt nur v6.11.5.
⚠ Funktionen: GetSomeData konnte nicht emuliert werden
i-Funktionen: Keine HTTPS-Funktionen gefunden. Verwenden Sie firebase functions:shell, wenn Sie andere Arten von Funktionen emulieren möchten.

firebase version: 3.19.3

Das ist mein 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));
});

Irgendwelche Vorschläge?

Hallo, Problem mit Node 10
Ältere Version verwenden. Version 8 zum Beispiel.
Am 4. Juli 2018, 01:46 +0200, schrieb Nicolas Sturm [email protected] :

Ich kann firebase deploy --only-Funktionen verwenden, aber keine firebase serve --only-Funktionen.
Es bleibt geladen, nachdem "npm run serve" ausgeführt wurde.
i Funktionen: Vorbereitung zum Emulieren von Funktionen.
Warnung: Sie verwenden Node.js v10.5.0, aber Google Cloud Functions unterstützt nur v6.11.5.
⚠ Funktionen: GetSomeData konnte nicht emuliert werden
i-Funktionen: Keine HTTPS-Funktionen gefunden. Verwenden Sie firebase functions:shell, wenn Sie andere Arten von Funktionen emulieren möchten.
Firebase-Version: 3.19.3
Das ist mein Code:
'streng verwenden';

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));
});
Irgendwelche Vorschläge?

Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub an oder schalten Sie den Thread stumm.

Falls es anderen hilft, habe ich versucht, fulfillment s von Dialogflow zu verwenden und den Code lokal zu bearbeiten und zu testen. Ich hatte diesen Fehler. Was es löste, war ähnlich wie das, was @rafasoares sagte.

Um dies zu lösen, musste ich die von Dialogflow verwendete package.json kopieren und nicht die firebase init generierte. Scheint ein Versionsproblem zu sein.

Ich habe genau das gleiche Problem. Ich denke, wir werden einfach auf die Verwendung von Umgebungsvariablen in unseren verschiedenen Bereitstellungsphasen verzichten und einfach eine JSON-Konfigurationsdatei verwenden. Ich würde gerne eine Lösung sehen, das Ausführen von npm tut absolut nichts, um dies zu beheben.

In meinem Fall habe ich den Fehler behoben, indem ich zuerst firebase deploy ausgeführt habe, dann firebase serve ausgeführt habe und der Fehler verschwunden ist

Ich habe alle Firebase-Tools, Firebase-Admin, Firebase-Funktionen auf den neuesten Stand gebracht

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

Ich sehe diesen Fehler jedoch immer noch, wenn ich die Firebase Functions Shell ausführen möchte

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 Hallo, ich kann dir keine klare Antwort geben, aber ich kann dir einige Hinweise geben. Ich habe auch den gleichen Fehler. In meinem Fall konnte ich require('firebase') nicht gut arbeiten. Also habe ich versucht, ' [email protected] ' herunterzustufen.
Ich habe npm install --save [email protected] . Endlich konnte ich dieses Problem lösen.
Vielleicht haben Sie das Problem, sich mit Firebase oder anderen Funktionen zu befassen.
Überprüfen Sie die Abhängigkeiten der einzelnen Versionen, die Sie haben. Viel Glück.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen