Firebase-tools: "fungsi: Gagal memuat kode sumber fungsi. Pastikan Anda memiliki SDK terbaru dengan...."

Dibuat pada 19 Jan 2018  ·  60Komentar  ·  Sumber: firebase/firebase-tools

Informasi versi

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

Langkah-langkah untuk mereproduksi

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

Perilaku sebenarnya

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

Ini sangat aneh, karena di proyek lain, firebase serve --only functions membeku, dan saya mencoba banyak sampel lain. Ini tidak bekerja di salah satu dari mereka.

Bahkan tidak berfungsi untuk fungsi yang sudah saya terapkan.

Komentar yang paling membantu

Coba jalankan npm run serve dari dalam direktori fungsi alih-alih firebase serve --only functions , ini mungkin atau mungkin tidak berfungsi tergantung pada bagaimana file package.json Anda dikonfigurasi.

Semua 60 komentar

Coba jalankan npm run serve dari dalam direktori fungsi alih-alih firebase serve --only functions , ini mungkin atau mungkin tidak berfungsi tergantung pada bagaimana file package.json Anda dikonfigurasi.

Sayangnya, saya tidak memiliki package.json yang dikonfigurasi untuk itu.

> 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

Bisakah Anda mengarahkan saya ke satu?

Seperti inilah tampilan saya setelah firebase init baru : https://Gist.github.com/dylanjmcdonald/6c033b476e863efaea3eccc0b3137772

Saya telah berhasil mengatasi kesalahan ini dengan menurunkan firebase-tools ke 3.16.0, karena kesalahan dimulai setelah saya memperbarui ke 3.17.1

Cerita yang lebih panjang

Saya pertama kali menemukan kesalahan ini di CI runner saya, karena saya menginstal versi terbaru firebase-tools untuk penerapan. Semalam, penyebaran saya berhenti bekerja. Mereka mulai bekerja lagi setelah saya memutakhirkan firebase-admin dan firebase-functions .

Tapi kemudian lingkungan lokal saya berhenti bekerja. Saya masih dapat menerapkan, tetapi tidak dapat menjalankan fungsi. Mencoba mencopot firebase-tools dan menginstal ulang... Dan semua variasi yang bisa saya buat (membersihkan cache, menggunakan NPM terbaru, menggunakan 6.11.5, menggunakan Benang, dll.). Tidak beruntung.

Akhirnya, saya memutuskan untuk mengembalikan semuanya ke versi yang berfungsi sebelumnya dan membekukan versi yang digunakan dalam skrip CI saya (alih-alih menggunakan yang terbaru) dan sekarang kedua lingkungan bekerja secara konsisten.

Saya telah melihat variasi yang berbeda dari masalah ini dengan kemungkinan solusi yang berbeda sejak beberapa bulan yang lalu. Mungkin itu regresi? Beberapa masalah mendasar yang tidak jelas?

BTW: Saya menjalankan macOS High Sierra 10.13.2 secara lokal dan node: gambar Docker terbaru untuk pelari CI saya di GitLab, jika itu membantu.

PS: Dalam pengalaman saya, npm run dev menjalankan firebase serve --only functions secara internal.

@rafasoares : terima kasih, dapat mengonfirmasi bahwa penurunan versi ke 3.16.0 memperbaiki kesalahan!

npm install -g [email protected]

Saya juga menggunakan macOS High Sierra 10.13.2, tetapi saya menggunakan node v6.11.5 yang diinstal melalui nvm .

@The-Alchemist senang saya bisa membantu.

Saya sudah mencoba keduanya dengan node terbaru yang diinstal melalui brew (9.x) dan 6.11.5 diinstal melalui nvm. Itu berfungsi sebelumnya dengan node terbaru (dengan peringatan versi node GCP).

Halo semuanya, firebase-tools (3.17.1) terbaru juga memerlukan SDK fungsi firebase terbaru, jadi cara yang lebih baik untuk menyelesaikan masalah adalah dengan menjalankan "npm i --save firebase-functions@latest " di dalam folder fungsi sebelum menerapkan atau melayani, seperti yang disarankan oleh pesan kesalahan.

@laurenzlong apakah Anda membaca komentar saya di atas? Itu adalah hal pertama yang saya coba. Setelah itu, saya dapat firebase deploy --only functions , tetapi tidak firebase serve --only functions .

Dan saya sudah mencoba segala macam strategi pembersihan yang bisa saya lakukan. Saya bahkan menghapus copy pekerjaan saya dan menarik semuanya dari Git dari awal.

@rafasoares Maaf, saya melewatkan bagian itu. Aku akan melihat ke dalamnya sekarang.

Luar biasa! Terima kasih!

v3.17.2 sekarang telah dirilis dan seharusnya telah memperbaiki masalahnya, beri tahu saya jika tidak. Terima kasih telah melaporkan!

Baru saja mencoba v3.17.2, berhasil untuk saya!

Itu tidak berhasil untuk saya. Saya berhasil membuatnya bekerja pada proyek kosong, tetapi tidak dapat membuat proyek saya saat ini berfungsi.

Jadi saya pergi menggali. Apa perbedaan antara keduanya?

Saya bisa menunjukkan masalahnya. Rusak ketika saya menambahkan sedikit kode ini:

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

Jika saya menghapus bit inisialisasi, saya dapat melayani fungsi. Namun, saya tidak dapat menggunakan Firestore.

Pembaruan: Jika saya mengganti panggilan functions.config().firebase dengan JSON berikut, ini berfungsi:

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

JSON itu adalah output dari functions.config().firebase saat menggunakan [email protected] (dengan pengecualian bit credential , yang saya dapatkan dari dokumen.

Saya belum mencoba menyebarkan dengan kode ini.

@rafasoares Saya menurunkan ketergantungan google-cloud/functions-emulator, itulah bedanya. Coba "npm uninstall -g firebase-tools & npm i -g firebase-tools". Bergantung pada versi npm yang Anda miliki, terkadang itu tidak menurunkan dependensi kecuali Anda melakukan uninstall terlebih dahulu.

@rafasoares Sepertinya saya salah membuat versi semver, saya pikir saya memperbaikinya di # 618, dapatkah Anda mencoba menggunakan cabang itu?

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

@laurenzlong

Sepertinya saya salah membuat versi semver, saya pikir saya memperbaikinya di # 618, dapatkah Anda mencoba menggunakan cabang itu?

Saya memiliki masalah yang sama dengan @rafasoares , dan saya mencoba npm install -g https://github.com/firebase/firebase-tools.git#laurenzlong-patch-1 , tetapi masalahnya tetap ada.

Dengan npm install -g [email protected] , masalah teratasi.

Maaf, saya telah bermain-main dengan Benang dan NPM mencoba membuat mereka mengunduh versi yang tepat, saya mungkin telah mengacaukan lingkungan saya haha.

Tapi ya, https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1 masih memberi saya kesalahan, meskipun @google-cloud/[email protected] adalah versi yang diinstal.

@mono0926 @rafasoares Bagaimana dengan ini?
npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

Terima kasih atas kesabaran dan bantuan Anda!

@laurenzlong

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

Ini masih memberi saya kesalahan, sayangnya :(

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

@laurenzlong

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

Saya sudah mencoba itu.

Rupanya https://github.com/firebase/firebase-tools.git#ll -fixemu memperbaikinya untuk saya.

$ 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

Saat ini saya menggunakan simpul v6.11.5. @mono0926 mungkin itu ada hubungannya dengan itu?

@rafasoares

Saat ini saya menggunakan simpul v6.11.5. @mono0926 mungkin itu ada hubungannya dengan itu?

Saya menggunakan versi node yang sama

@mono0926 ya, saya hanya menebak-nebak. Saya baru saja mencoba menggunakan yang terbaru dan berhasil.

Coba lakukan pembersihan menyeluruh dari dependensi global Anda dan pembersihan cache (juga, coba bangun kembali dependensi lokal proyek Anda). Saya sudah melakukannya beberapa kali hari ini ketika mencoba menyelesaikan masalah ini, mungkin itu membantu.

@rachelmyers @laurenzlong

Saya perhatikan bahwa detail kesalahan berubah, setelah mencoba npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu .

Dan, kesalahan terjadi pada kode saya, dan saya memodifikasinya, dan setelah itu kesalahan teratasi 👍

Jika saya menggunakan [email protected] , kesalahan tidak terjadi tanpa mengubah kode saya.
Jadi, saya akan memberitahu Anda nanti, saya menyelidiki detail masalah.

@mono0926 Apakah Anda keberatan berbagi dengan kami apa yang Anda ubah dalam kode Anda? Apakah itu sesuatu yang terkait dengan Firebase?

@rachelmyers @laurenzlong

Saya menyelidiki itu dan saya menemukan intinya.

Dengan kode ini,

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

Terjadi kesalahan:

TypeError: Cannot read property 'project_id' of undefined

Tapi dengan kode ini,

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

Log ini dicetak:

info: environment: { project_id: 'development' }

Mengapa saya tidak dapat mengakses project_id dari functions.config().environment pada versi terbaru?
Saya dapat mengakses project_id dari functions.config().environment di bawah [email protected] .

Saya tahu ini adalah masalah lain dengan masalah ini.

Apakah Anda keberatan berbagi dengan kami apa yang Anda ubah dalam kode Anda? Apakah itu sesuatu yang terkait dengan Firebase?

Saya memperbaiki masalah ini dengan mengkodekan nilai project_id sementara, jadi saya ingin Anda memperbaiki masalah ini.

Ketika saya menerapkan fungsi, masalah tidak terjadi.

@The-Alchemist Saya Konfirmasikan juga: menurunkan versi ke 3.16.0 memperbaiki kesalahan!

npm install -g [email protected]

Saya juga menggunakan macOS High Sierra 10.13.2 dan node v8.9.4 diinstal oleh penginstalnya dengan izin tetap: https://docs.npmjs.com/getting-started/fixing-npm-permissions.

Tidak ada masalah dengan [email protected] di Windows.

Saya mendapat :

+ [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 (jamak)

Pada Sabtu, 20 Januari 2018, 12:44 Marcus Hitchins [email protected]
menulis:

Saya mendapat :

=== Melayani dari '/home/marcus/app'...

Kesalahan: Tidak dapat memahami target yang akan diterapkan. Periksa apakah Anda menetapkan target yang valid jika Anda menggunakan tanda --only atau --except. Jika tidak, periksa firebase.json Anda untuk memastikan bahwa proyek Anda diinisialisasi untuk fitur yang diinginkan.


Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/firebase/firebase-tools/issues/609#issuecomment-359200751 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAAD_tJH6ez89mjEZVdJbPVMDqeKym76ks5tMlAQgaJpZM4Rj8M0
.

@mono0926 Kami tidak pernah mendukung nilai konfigurasi khusus di dalam emulator, Anda perlu menjalankan "firebase functions:config:get > .runtimeconfig.json" di dalam folder fungsi Anda sehingga variabel disimpan di .runtimeconfig.json dan dapat diakses oleh emulator.

@ marcus7777 Saya pikir ini adalah masalah terpisah, ditangkap di https://github.com/firebase/firebase-tools/issues/442

Saya menutup masalah ini sekarang karena kesalahan yang dilaporkan sebelumnya telah diperbaiki di v.3.17.3

Sungguh menakjubkan betapa cepatnya ini ditangani. Kerja luar biasa @laurenzlong. 👏.

@laurenzlong

Anda perlu menjalankan "firebase functions:config:get > .runtimeconfig.json" di dalam folder fungsi Anda sehingga variabel dapat disimpan di .runtimeconfig.json dan dapat diakses oleh emulator.

Jadi begitu. Saya lupa menulis informasi ini.
Ini adalah functions/.runtimeconfig.json :

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

Saya dapat mengakses functions.config().environment. project_id di bawah v3.16.0, tetapi saya tidak dapat mengakses di versi terbaru (v3.17.3).

@ mono0926 Bisakah Anda membuka masalah baru untuk ini? Dan juga sertakan versi firebase-functions apa yang Anda gunakan?

@laurenzlong

Bisakah Anda membuka masalah baru untuk ini? Dan juga sertakan versi firebase-functions apa yang Anda gunakan?

Oke, saya membuka masalah 👍 : https://github.com/firebase/firebase-tools/issues/629

hanya memperbarui ke 3.17.4 masih mendapatkan:

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$

dan telah mencoba #442 tetapi tidak berhasil.
hal. berjalan di xenial (Linux)

@ marcus7777 masalah yang Anda hadapi tidak terkait dengan masalah ini. Coba hapus firebase-tools dan instal ulang. Jika tidak berhasil, buka edisi baru.

Saya juga berhasil menghapus status lokal emulator:

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

dan file serupa.
Terima kasih

Halo,

Saya juga mengalami masalah ini dengan [email protected].

Seperti yang dicatat oleh @rafasoares masalah muncul jika saya menambahkan baris ini:

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

Ini adalah kesalahan yang saya dapatkan:

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

Juga ketika saya menurunkan versi ke [email protected] Saya dapat mengakses Shell, tetapi kesalahan baru muncul:

➜  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 Mungkin ada sesuatu yang saya lewatkan?

@BernalCarlos Seperti yang disarankan oleh pesan kesalahan, pastikan Anda menggunakan versi firebase-functions terbaru. Jalankan yang berikut ini di direktori fungsi Anda: `npm i --save firebase-functions@latest '

Setelah itu, functions/package.json Anda harus memiliki firebase-functions 0.8.1

@laurenzlong Saya sudah memiliki versi terbaru dari firebase-functions. Ini adalah package.json saya:

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

Di yarn.lock saya juga punya ini:

...

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"

Tapi masalahnya masih ada.

Terima kasih telah membagikan package.json Anda, dapatkah Anda memberi tahu saya apa struktur direktori proyek Anda? Kami belum mendukung mono repo, jadi perlu ada folder functions/node_modules/firebase-functions.

Tentu @laurenzlong ini struktur direktori proyek saya, ini cukup besar karena folder node_modules:

folder-struktur.txt

Dengan [email protected] (yaitu firebase CLI) masalah muncul lagi, itu tidak terkait langsung dengan fungsi, tetapi jika Anda memutar kembali ke 3.17.4, emulasi akan berfungsi.
Saya membuka masalah yang sesuai di repo firebase-tools: firebase/firebase-tools#691

@Rulsky dengan [email protected] , gagal dengan kesalahan yang berbeda untuk fungsi yang sangat sederhana:

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

Kesalahan:

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

Saya juga memperhatikan bahwa file log dibuat ketika firebase CLI berjalan, tetapi file tersebut segera dihapus setelahnya. Apakah ada cara agar file log ini tidak dihapus?

@BernalCarlos sudahkah Anda memasukkan kunci Admin layanan ke dir functions proyek Anda? Dan melakukan ekspor variabel global GOOGLE_APPLICATION_CREDENTIALS di shell Anda?
sangat penting untuk membuatnya bekerja https://firebase.google.com/docs/functions/local-emulator

Anda sebenarnya tidak perlu menyetel GOOGLE_APPLICATION_CREDENTIALS jika tidak menggunakan Firebase auth atau Google API lainnya. Jadi @BernalCarlos saya pikir masalah Anda sama dengan https://github.com/firebase/firebase-tools/issues/691 , yang telah saya perbaiki dan tautkan dalam masalah itu.

Saya memiliki proyek bersih hanya dengan fungsi yang dibuat CLI dan tidak berfungsi ketika saya memasukkan const app = admin.initializeApp(functions.config().firebase); . Proyek ini disiapkan dengan
```
"ketergantungan": {
"firebase-admin": "~5.8.1",
"firebase-functions": "^0.8.1"
}
````

@Jhony0311 Anda mungkin juga terpengaruh oleh #691

Saya dapat menggunakan firebase deploy --only functions tetapi tidak firebase serve --only functions .

Itu tetap memuat setelah menjalankan "npm run serve",

i functions: Mempersiapkan untuk meniru fungsi.
Peringatan: Anda menggunakan Node.js v10.5.0 tetapi Google Cloud Functions hanya mendukung v6.11.5.
fungsi: Gagal meniru getSomeData
i functions: Tidak ada fungsi HTTPS yang ditemukan. Gunakan fungsi firebase:shell jika Anda ingin meniru jenis fungsi lainnya.

firebase version: 3.19.3

Ini kode saya:

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

Ada saran?

Hai, masalah dengan simpul 10
Gunakan versi yang lebih lama. Versi 8, misalnya.
Pada 4 Juli 2018, 01:46 +0200, Nicolas Sturm [email protected] , menulis:

Saya dapat menggunakan fungsi firebase deploy --only tetapi tidak ada fungsi firebase serve --only.
Itu tetap memuat setelah menjalankan "npm run serve",
i functions: Mempersiapkan untuk meniru fungsi.
Peringatan: Anda menggunakan Node.js v10.5.0 tetapi Google Cloud Functions hanya mendukung v6.11.5.
fungsi: Gagal meniru getSomeData
i functions: Tidak ada fungsi HTTPS yang ditemukan. Gunakan fungsi firebase:shell jika Anda ingin meniru jenis fungsi lainnya.
versi firebase: 3.19.3
Ini kode saya:
'gunakan ketat';

fungsi const = membutuhkan('fungsi-firebase');
const admin = membutuhkan('firebase-admin');

admin.initializeApp();

export.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));
});
Ada saran?

Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub, atau matikan utasnya.

Jika ini membantu orang lain, saya mencoba menggunakan fulfillment dari Dialogflow dan mengedit & menguji kode secara lokal. Saya mengalami kesalahan ini. Apa yang menyelesaikannya mirip dengan apa yang dikatakan @rafasoares .

Untuk mengatasi ini, saya harus menyalin package.json Dialogflow yang digunakan daripada yang dihasilkan firebase init . Tampaknya menjadi masalah versi.

Saya memiliki masalah yang sama persis. Saya pikir kita hanya akan menggunakan variabel lingkungan dalam berbagai tahap penerapan kita dan hanya menggunakan file konfigurasi JSON. Saya ingin melihat perbaikan, menjalankan npm sama sekali tidak memperbaiki ini.

Dalam kasus saya, saya memperbaiki bug dengan menjalankan firebase deploy terlebih dahulu kemudian menjalankan firebase serve dan bug hilang

Saya telah memperbarui semua firebase-tools, firebase-admin, firebase-functions ke yang terbaru

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

Namun, saya masih melihat kesalahan ini ketika saya ingin menjalankan fungsi firebase Shell

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 halo, saya tidak dapat memberi Anda jawaban yang jelas tetapi saya dapat memberi Anda beberapa petunjuk. Saya mendapat kesalahan yang sama juga. Dalam kasus saya, saya tidak dapat bekerja dengan baik require('firebase') . Jadi, saya mencoba menurunkan versi ' [email protected] '.
Saya melakukan npm install --save [email protected] . Akhirnya, saya bisa menyelesaikan masalah ini.
Mungkin Anda memiliki masalah terkait dengan firebase atau fungsi lainnya.
Periksa setiap dependensi versi yang Anda miliki. Semoga berhasil.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat