Firebase-tools: "jobs: فشل تحميل التعليمات البرمجية المصدر للوظائف. تأكد من أن لديك أحدث SDK بواسطة ...."

تم إنشاؤها على ١٩ يناير ٢٠١٨  ·  60تعليقات  ·  مصدر: firebase/firebase-tools

معلومات الإصدار

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

خطوات التكاثر

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

السلوك الفعلي

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

إنه أمر غريب للغاية ، لأنه في مشاريع أخرى ، يتجمد firebase serve --only functions ، وقد جربت مجموعة من العينات الأخرى. لا يعمل في أي منها.

حتى أنه لا يعمل مع الوظائف التي قمت بنشرها بالفعل.

التعليق الأكثر فائدة

حاول تشغيل npm run serve من داخل دليل الوظائف بدلاً من firebase serve --only functions ، فقد يعمل هذا وقد لا يعمل بناءً على كيفية تكوين ملف package.json.

ال 60 كومينتر

حاول تشغيل npm run serve من داخل دليل الوظائف بدلاً من firebase serve --only functions ، فقد يعمل هذا وقد لا يعمل بناءً على كيفية تكوين ملف package.json.

لسوء الحظ ، ليس لدي package.json مهيأ لذلك.

> 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

هل يمكنك أن تدلني على واحد؟

هذا ما يبدو لي بعد firebase init جديد: https://gist.github.com/dylanjmcdonald/6c033b476e863efaea3eccc0b3137772

لقد تمكنت من التغلب على هذا الخطأ عن طريق تخفيض firebase-tools إلى 3.16.0 ، حيث بدأ الخطأ بعد أن قمت بالتحديث إلى 3.17.1

قصة أطول

لقد عثرت أولاً على هذا الخطأ في CI runner ، قبل أن أقوم بتثبيت أحدث إصدار من firebase-tools للنشر. بين عشية وضحاها ، توقفت عمليات النشر الخاصة بي عن العمل. بدأوا العمل مرة أخرى بعد أن قمت بترقية firebase-admin و firebase-functions .

ولكن بعد ذلك توقفت بيئتي المحلية عن العمل. لا يزال بإمكاني النشر ، لكن لا يمكنني خدمة الوظائف. حاولت إلغاء تثبيت firebase-tools وإعادة التثبيت ... وجميع الاختلافات التي يمكنني الحصول عليها (تنظيف ذاكرة التخزين المؤقت ، باستخدام أحدث NPM ، باستخدام 6.11.5 ، باستخدام Yarn ، وما إلى ذلك). لا حظ.

أخيرًا ، قررت إعادة كل شيء إلى الإصدارات التي كانت تعمل من قبل وتجميد الإصدار المستخدم في البرنامج النصي CI الخاص بي (بدلاً من استخدام الأحدث) والآن تعمل كلتا البيئتين باستمرار.

لقد رأيت أشكالًا مختلفة من هذه المشكلة مع حلول مختلفة محتملة تعود إلى بضعة أشهر. ربما هو تراجع؟ بعض القضايا الأساسية الغامضة؟

راجع للشغل: أنا أقوم بتشغيل macOS High Sierra 10.13.2 محليًا والعقدة: أحدث صورة Docker لعداء CI الخاص بي على GitLab ، إذا كان ذلك يساعد.

ملاحظة: من واقع خبرتي ، فإن npm run dev يدير firebase serve --only functions داخليًا.

rafasoares : شكرًا لك ، يمكن أن نؤكد أن تخفيض التصنيف إلى 3.16.0 أصلح الخطأ!

npm install -g [email protected]

أنا أستخدم macOS High Sierra 10.13.2 أيضًا ، لكنني أستخدم العقدة v6.11.5 المثبتة من خلال nvm .

@ The-Alchemist سعيد لأنني يمكن أن تساعد.

لقد جربت مع أحدث عقدة مثبتة عبر المشروب (9.x) و 6.11.5 مثبتًا من خلال nvm. كان يعمل من قبل مع أحدث عقدة (مع تحذير إصدار عقدة GCP).

مرحبًا بالجميع ، تتطلب أحدث أدوات Firebase (3.17.1) أيضًا أحدث SDK لوظائف Firebase ، لذا فإن أفضل طريقة لحل المشكلات هي تشغيل "npm i - save firebase -function @ latest " داخل مجلد الوظائف قبل النشر أو العرض ، كما توحي رسالة الخطأ.

@ laurenzlong هل قرأت تعليقي أعلاه؟ كان أول شيء حاولت. بعد ذلك ، تمكنت من الحصول على firebase deploy --only functions ، لكن ليس firebase serve --only functions .

وقد جربت كل طرق إستراتيجيات التنظيف التي يمكنني التوصل إليها. حتى أنني حذفت نسخة العمل الخاصة بي وسحبت كل شيء من Git من البداية.

rafasoares أعتذر ، فاتني هذا الجزء. سأبحث فيه الآن.

مدهش! شكرا!

تم إصدار الإصدار 3.17.2 الآن ويجب أن يتم إصلاح المشكلة ، يرجى إعلامي إذا لم يحدث ذلك. شكرا على الإبلاغ!

جربت للتو الإصدار 3.17.2 ، عملت معي!

لم ينجح معي. تمكنت من جعله يعمل في مشروع فارغ ، لكن لم أستطع جعل مشروعي الحالي يعمل.

لذلك ذهبت للحفر. ما هي الاختلافات بين الاثنين؟

كنت قادرا على تحديد المشكلة. ينكسر عندما أضيف هذا الجزء من الكود:

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

إذا قمت بإزالة بت التهيئة ، يمكنني خدمة الوظائف. ومع ذلك ، لا يمكنني استخدام Firestore.

تحديث: إذا قمت باستبدال المكالمة functions.config().firebase بـ JSON التالية ، فإنها تعمل:

{
  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 ناتجًا functions.config().firebase عند استخدام [email protected] (باستثناء credential بت ، الذي حصلت عليه من المستندات.

لم أحاول النشر باستخدام هذا الرمز ، رغم ذلك.

rafasoares لقد خفضت مستوى تبعية google-cloud / function-emulator ، وهذا هو الفرق. جرب "npm uninstall -g firebase-tools & npm i -g firebase-tools". اعتمادًا على إصدار npm الذي لديك ، في بعض الأحيان لا يقوم بتقليل التبعيات إلا إذا قمت بإلغاء التثبيت أولاً.

rafasoares يبدو أنني أخطأت في إصدار semver ، أعتقد أنني أصلحته في # 618 ، هل يمكنك تجربة استخدام هذا الفرع؟

تثبيت npm -g https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1

تضمين التغريدة

يبدو أنني حصلت على إصدار semver بشكل خاطئ ، أعتقد أنني أصلحته في # 618 ، هل يمكنك محاولة استخدام هذا الفرع؟

واجهت نفس مشكلة rafasoares ، وحاولت npm install -g https://github.com/firebase/firebase-tools.git#laurenzlong-patch-1 ، لكن المشكلة لا تزال قائمة.

بواسطة npm install -g [email protected] ، تم حل المشكلة.

أنا آسف ، لقد كنت ألعب مع Yarn و NPM في محاولة لحملهم على تنزيل الإصدار الصحيح ، ربما أفسدت بيئتي.

لكن نعم ، https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1 لا يزال يعطيني الخطأ ، على الرغم من أن الإصدار المثبت هو @google-cloud/[email protected] .

@ mono0926rafasoares ماذا عن هذا؟
تثبيت npm -g https://github.com/firebase/firebase-tools.git#ll -fixemu

شكرا لصبرك ومساعدتك!

تضمين التغريدة

تثبيت npm -g https://github.com/firebase/firebase-tools.git#ll -fixemu

لا يزال هذا يعطيني الخطأ ، للأسف :(

ماذا عن npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu

تضمين التغريدة

ماذا عن npm uninstall -g firebase-tools && npm install -g https://github.com/firebase/firebase-tools.git#ll -fixemu

لقد حاولت ذلك بالفعل.

على ما يبدو https://github.com/firebase/firebase-tools.git#ll -fixemu يعمل على إصلاحه لي.

$ 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

أنا أستخدم حاليًا العقدة v6.11.5. @ mono0926 ربما هذا له علاقة به؟

تضمين التغريدة

أنا أستخدم حاليًا العقدة v6.11.5. @ mono0926 ربما هذا له علاقة به؟

أنا أستخدم نفس إصدار العقدة 🤔

@ mono0926 نعم ، كنت مجرد التخمين. لقد حاولت للتو استخدام الأحدث وعملت.

حاول إجراء تنظيف شامل للاعتمادات العالمية وتنظيف ذاكرة التخزين المؤقت (حاول أيضًا إعادة بناء التبعيات المحلية لمشروعك). لقد فعلت ذلك عدة مرات اليوم أثناء محاولتي حل هذه المشكلة ، ربما كان ذلك مفيدًا.

تضمين التغريدة

لقد لاحظت أن تفاصيل الخطأ قد تغيرت بعد تجربة npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu .

وحدث الخطأ في الكود الخاص بي وقمت بتعديله وبعد ذلك تم حل الخطأ 👍

إذا استخدمت [email protected] ، فلن يحدث الخطأ بدون تعديل الكود الخاص بي.
لذا ، سأخبرك لاحقًا ، لقد بحثت في تفاصيل المشكلة.

@ mono0926 هل تمانع في مشاركتنا ما قمت بتغييره في التعليمات البرمجية الخاصة بك؟ هل كان شيئًا متعلقًا بـ Firebase؟

تضمين التغريدة

لقد حققت في ذلك واكتشفت النقطة.

مع هذا الرمز ،

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

حدث الخطأ:

TypeError: Cannot read property 'project_id' of undefined

لكن مع هذا الرمز ،

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

هذا السجل مطبوع:

info: environment: { project_id: 'development' }

لماذا لا يمكنني الوصول إلى project_id من functions.config().environment في أحدث إصدار؟
تمكنت من الوصول إلى project_id من functions.config().environment تحت [email protected] .

أعلم أن هذه مشكلة أخرى مع هذه المشكلة.

هل تمانع في مشاركتنا ما قمت بتغييره في التعليمات البرمجية الخاصة بك؟ هل كان شيئًا متعلقًا بـ Firebase؟

لقد أصلحت المشكلة عن طريق الترميز الثابت لقيمة project_id مؤقتًا ، لذا أود منك إصلاح المشكلة.

عندما قمت بنشر الوظائف ، لا تحدث المشكلة.

@ The-Alchemist أؤكد ذلك لي أيضًا: تخفيض التصنيف إلى 3.16.0 أصلح الخطأ!

npm install -g [email protected]

أنا أستخدم macOS High Sierra 10.13.2 أيضًا والعقدة v8.9.4 مثبتة بواسطة المثبت بإذن ثابت: https://docs.npmjs.com/getting-started/fixing-npm-permissions.

لا توجد مشاكل مع [email protected] على Windows.

انا حصلت :

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

ماركوس: --only functions (جمع)

يوم السبت 20 يناير 2018 الساعة 12:44 مساءً Marcus Hitchins [email protected]
كتب:

انا حصلت :

=== العرض من '/ home / marcus / app' ...

خطأ: لا يمكن فهم الأهداف المطلوب نشرها. تحقق من تحديد أهداف صالحة إذا استخدمت علامة - فقط أو - استثناء. بخلاف ذلك ، تحقق من firebase.json للتأكد من تهيئة مشروعك للميزات المطلوبة.

-
أنت تتلقى هذا لأنك مشترك في هذا الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/firebase/firebase-tools/issues/609#issuecomment-359200751 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AAAD_tJH6ez89mjEZVdJbPVMDqeKym76ks5tMlAQgaJpZM4Rj8M0
.

@ mono0926 لم ندعم أبدًا قيم التكوين المخصصة داخل المحاكي ، فأنت بحاجة إلى تشغيل "وظائف firebase: config: get> .runtimeconfig.json" داخل مجلد وظائفك حتى يتم تخزين المتغيرات في .runtimeconfig.json ويمكن الوصول إليها بواسطة محاكي.

@ marcus7777 أعتقد أن هذه مشكلة منفصلة ، تم التقاطها في https://github.com/firebase/firebase-tools/issues/442

أقوم بإغلاق هذه المشكلة الآن حيث تم إصلاح الخطأ الذي تم الإبلاغ عنه في الأصل في الإصدار 3.17.3

إنه لأمر مدهش كيف تم التعامل مع هذا بسرعة. عمل رائعlaurenzlong. 👏

تضمين التغريدة

تحتاج إلى تشغيل "وظائف firebase: config: get> .runtimeconfig.json" داخل مجلد وظائفك حتى يتم تخزين المتغيرات في .runtimeconfig.json ويمكن الوصول إليها بواسطة المحاكي.

أرى. لقد نسيت أن أكتب هذه المعلومات.
هذا functions/.runtimeconfig.json :

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

تمكنت من الوصول إلى functions.config().environment. project_id تحت الإصدار 3.16.0 ، لكن لا يمكنني الوصول إلى الإصدار الأخير (v3.17.3).

@ mono0926 هل يمكنك فتح عدد جديد لهذا؟ وأيضًا قم بتضمين إصدار وظائف Firebase الذي تستخدمه؟

تضمين التغريدة

هل يمكنك فتح عدد جديد لهذا؟ وأيضًا قم بتضمين إصدار وظائف Firebase الذي تستخدمه؟

حسنًا ، فتحت مشكلة 👍: https://github.com/firebase/firebase-tools/issues/629

فقط قم بالتحديث إلى 3.17.4 وما زلت تحصل على:

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$

وحاول # 442 لكن لم يحالفه الحظ.
ملاحظة. يعمل على xenial (لينكس)

@ marcus7777 المشكلة التي تواجهها لا علاقة لها بهذه المشكلة. حاول إزالة أدوات Firebase وإعادة تثبيتها. إذا لم ينجح الأمر ، فافتح إصدارًا جديدًا.

لقد نجحت أيضًا في حذف الحالة المحلية للمحاكي:

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

والملفات المماثلة.
شكرا

مرحبا،

أواجه هذه المشكلة أيضًا مع [email protected].

كما لوحظ من قبل rafasoares تظهر المشكلة إذا أضفت هذا السطر:

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

هذا هو الخطأ الذي أحصل عليه:

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

أيضًا عند الرجوع إلى إصدار سابق [email protected] ، يمكنني الوصول إلى shell ، ولكن يظهر خطأ جديد:

➜  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 ربما هناك شيء مفقود؟

BernalCarlos كما توحي رسالة الخطأ ، يرجى التأكد من أنك تستخدم أحدث إصدار من وظائف firebase. قم بتشغيل ما يلي في دليل الوظائف: "npm i --save firebase -function @ latest "

بعد ذلك ، يجب أن تحتوي وظائفك / package.json على وظائف firebase 0.8.1

laurenzlong لدي بالفعل أحدث إصدار من وظائف Firebase. هذه مجموعتي. 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
}

في yarn.lock لدي أيضًا هذا:

...

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"

لكن المشكلة لا تزال قائمة.

شكرًا لمشاركتك package.json ، هل يمكن أن تخبرني ما هو هيكل دليل مشروعك؟ لا ندعم حتى الآن وحدات إعادة الشراء الأحادية ، لذلك يجب أن يكون هناك مجلد وظائف / node_modules / firebase-function.

بالتأكيد laurenzlong هذا هيكل دليل مشروعي ، إنه كبير جدًا بسبب مجلد node_modules:

مجلد هيكل. txt

مع ظهور مشكلة [email protected] (أي Firebase CLI) مرة أخرى ، فهي لا تتعلق مباشرة بالوظائف ، ولكن إذا التراجع إلى 3.17.4 ، فستعمل المحاكاة.
لقد فتحت المشكلة المقابلة في firebase-tools repo: firebase / firebase-tools # 691

Rulsky مع [email protected] ، فشل مع خطأ مختلف لوظيفة بسيطة للغاية:

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

خطأ:

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

لاحظت أيضًا أنه يتم إنشاء ملف سجل عند تشغيل Firebase CLI ، ولكن يتم حذف هذا الملف على الفور بعد ذلك. هل هناك طريقة لمنع حذف ملف السجل هذا؟

BernalCarlos هل أدخلت مفتاح مدير الخدمة في مشروعك functions dir؟ وقمت بتصدير GOOGLE_APPLICATION_CREDENTIALS المتغير العام في قشرتك؟
من الضروري جعلها تعمل https://firebase.google.com/docs/functions/local-emulator

لا تحتاج في الواقع إلى تعيين GOOGLE_APPLICATION_CREDENTIALS إذا كنت لا تستخدم مصادقة Firebase أو واجهات برمجة تطبيقات أخرى من Google. لذا ، أعتقد أن BernalCarlos مشكلتك هي نفسها https://github.com/firebase/firebase-tools/issues/691 ، والتي قمت بإصلاحها وربطتها بهذه المشكلة.

لديّ مشروع نظيف فقط بالوظيفة التي ينشئها CLI ولا يعمل عندما أقوم بتضمين const app = admin.initializeApp(functions.config().firebase); . تم إعداد المشروع مع
""
"التبعيات": {
"Firebase-admin": "~ 5.8.1"،
"وظائف Firebase": "^ 0.8.1"
}
""

@ Jhony0311 ربما تكون متأثرًا أيضًا بالرقم 691

يمكنني استخدام firebase deploy --only functions لكن لا يمكنني استخدام $ # firebase serve --only functions .

يبقى التحميل بعد تنفيذ "npm run serve" ،

وظائف i: التحضير لمحاكاة الوظائف.
تحذير: أنت تستخدم Node.js v10.5.0 لكن وظائف Google Cloud تدعم الإصدار 6.11.5 فقط.
⚠ وظائف: فشل محاكاة getSomeData
وظائف i: لم يتم العثور على وظائف HTTPS. استخدم وظائف Firebase: shell إذا كنت ترغب في محاكاة أنواع أخرى من الوظائف.

firebase version: 3.19.3

هذا هو الكود الخاص بي:

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

أي اقتراحات؟

مرحبًا ، مشكلة العقدة 10
استخدم الإصدار الأقدم. الإصدار 8 ، على سبيل المثال.
في 4 يوليو 2018 ، 01:46 +0200 ، كتب Nicolas Sturm [email protected] :

يمكنني استخدام نشر Firebase - وظائف فقط ولكن لا توجد خدمة Firebase - وظائف فقط.
يبقى التحميل بعد تنفيذ "npm run serve" ،
وظائف i: التحضير لمحاكاة الوظائف.
تحذير: أنت تستخدم Node.js v10.5.0 لكن وظائف Google Cloud تدعم الإصدار 6.11.5 فقط.
⚠ وظائف: فشل محاكاة getSomeData
وظائف i: لم يتم العثور على وظائف HTTPS. استخدم وظائف Firebase: shell إذا كنت ترغب في محاكاة أنواع أخرى من الوظائف.
إصدار Firebase: 3.19.3
هذا هو الكود الخاص بي:
"استخدام صارم" ؛

وظائف const = تتطلب ('وظائف Firebase') ؛
const admin = تتطلب ('firebase-admin') ؛

admin.initializeApp () ،

export.getSomeData = function.https.onRequest ((req، res) => {
admin.firestore (). doc ('feedback / d8pGxmML5ZKLYEy5jyhm'). get ()
ثم (doc => res.send (doc.data ()))
.catch (يخطئ => res.status (500) .send (يخطئ)) ؛
}) ؛
أي اقتراحات؟
-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub ، أو قم بكتم صوت الموضوع.

في حالة مساعدة الآخرين ، كنت أحاول استخدام Dialogflow fulfillment s وتعديل الرمز واختباره محليًا. كان لدي هذا الخطأ. ما تم حله كان مشابهًا لما قاله rafasoares .

لحل هذه المشكلة ، اضطررت إلى نسخ Package.json Dialogflow المستخدم بدلاً من الحزمة firebase init التي تم إنشاؤها. يبدو أن مشكلة إصدار.

لدي نفس المشكلة بالضبط. أعتقد أننا سنقوم بإنقاذ استخدام المتغيرات البيئية في مراحل النشر المختلفة لدينا واستخدام ملف تكوين JSON. أود أن أرى إصلاحًا ، فالتشغيل npm لا يفعل شيئًا على الإطلاق لإصلاح ذلك.

في حالتي ، أصلحت الخطأ عن طريق تشغيل firebase deploy أولاً ثم تشغيل firebase serve واختفى الخطأ

لقد قمت بتحديث جميع أدوات firebase و firebase-admin و firebase-function إلى أحدثها

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

ومع ذلك ، ما زلت أرى هذا الخطأ عندما أريد تشغيل قذيفة وظائف 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 مرحبًا ، لا يمكنني إخبارك بإجابة واضحة ولكن قد أعطيك بعض الأدلة. حصلت على نفس الخطأ أيضا. في حالتي ، لم أتمكن من العمل require('firebase') جيدًا. لذلك ، حاولت الرجوع إلى إصدار أقدم " [email protected] ".
فعلت npm install --save [email protected] . أخيرًا ، يمكنني حل هذه المشكلة.
ربما لديك مشكلة تتعلق بقاعدة Firebase أو وظائف أخرى.
تحقق من تبعيات كل إصدار لديك. حظا طيبا وفقك الله.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات