Firebase-tools: "рдлрд╝рдВрдХреНрд╢рдВрд╕: рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд╡реАрдирддрдо рдПрд╕рдбреАрдХреЗ рд╣реИ ..."

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЬрдире░ 2018  ┬╖  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 рдЬрдорд╛ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЕрдиреНрдп рдирдореВрдиреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдореЗрдВ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рддреИрдирд╛рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

$#$1$# firebase serve --only functions рдХреЗ рдмрдЬрд╛рдп рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рд╕реЗ npm run serve рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдпрд╣ рдЖрдкрдХреА package.json рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ рднреАред

рд╕рднреА 60 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

$#$1$# firebase serve --only functions рдХреЗ рдмрдЬрд╛рдп рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рд╕реЗ npm run serve рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдпрд╣ рдЖрдкрдХреА 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 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рддреНрд░реБрдЯрд┐ рд╢реБрд░реВ рд╣реБрдИ рдереА

рд▓рдВрдмреА рдХрд╣рд╛рдиреА

рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдЕрдкрдиреЗ рд╕реАрдЖрдИ рдзрд╛рд╡рдХ рдореЗрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ, рдмреАрд╕реА рдореИрдВ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП firebase-tools рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рд░рд╛рддреЛрдВ-рд░рд╛рдд, рдореЗрд░реА рддреИрдирд╛рддреА рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ firebase-admin рдФрд░ firebase-functions рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЛрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдореИрдВ рдЕрднреА рднреА рддреИрдирд╛рдд рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред firebase-tools рдХреА рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░рдиреЗ рдФрд░ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛... рдФрд░ рд╕рднреА рд╡рд┐рд╡рд┐рдзрддрд╛рдПрдВ рдЬреЛ рдореИрдВ рд▓реЗрдХрд░ рдЖ рд╕рдХрддрд╛ рдерд╛ (рдХреИрд╢ рдХреА рд╕рдлрд╛рдИ, рдирд╡реАрдирддрдо рдПрдирдкреАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, 6.11.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрджрд┐)ред рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВред

рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рдЙрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд░реЛрд▓ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬреЛ рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗ рдФрд░ рдореЗрд░реА рд╕реАрдЖрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдирд╡реАрдирддрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдлреНрд░реАрдЬ рдХрд░ рджрд┐рдпрд╛ рдерд╛ рдФрд░ рдЕрдм рджреЛрдиреЛрдВ рд╡рд╛рддрд╛рд╡рд░рдг рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкреЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рд╣реИ? рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореБрджреНрджрд╛?

BTW: рдореИрдВ macOS рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ 10.13.2 рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдиреЛрдб: GitLab рдкрд░ рдореЗрд░реЗ CI рд░рдирд░ рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдбреЙрдХрд░ рдЫрд╡рд┐, рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ: рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, npm run dev firebase serve --only functions $ рдЪрд▓рддрд╛ рд╣реИред

@rafasoares : рдзрдиреНрдпрд╡рд╛рдж, рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ 3.16.0 рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдареАрдХ рд╣реЛ рдЧрдИ!

npm install -g [email protected]

рдореИрдВ macOS рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ 10.13.2 рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ nvm рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдиреЛрдб v6.11.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@ рдж-рдЕрд▓рдХреЗрдорд┐рд╕реНрдЯ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореИрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореИрдВрдиреЗ рдмреНрд░реВ (9.x) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╡реАрдирддрдо рдиреЛрдб рдФрд░ рдПрдирд╡реАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 6.11.5 рд╕реНрдерд╛рдкрд┐рдд рджреЛрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдпрд╣ рдирд╡реАрдирддрдо рдиреЛрдб рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬреАрд╕реАрдкреА рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде)ред

рд╣рд╛рдп рд╕рдм, рдирд╡реАрдирддрдо рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ (3.17.1) рдХреЛ рднреА рдирд╡реАрдирддрдо рдлрд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрд╕рдбреАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ "npm i --save firebase-functions@latest " рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рддреИрдирд╛рддреА рдпрд╛ рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЬреИрд╕рд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред

@laurenzlong рдХреНрдпрд╛ рдЖрдкрдиреЗ рдКрдкрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝реА? рдпрд╣ рдкрд╣рд▓реА рдЪреАрдЬ рдереА рдЬрд┐рд╕рдХреА рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдереАред рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ firebase deploy --only functions рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди firebase serve --only functions рдирд╣реАрдВред

рдФрд░ рдореИрдВрдиреЗ рд╣рд░ рддрд░рд╣ рдХреА рд╕рдлрд╛рдИ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдореИрдВ рдЖ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЕрдкрдиреА рдХрд╛рдордХрд╛рдЬреА рдкреНрд░рддрд┐ рднреА рд╣рдЯрд╛ рджреА рдФрд░ рдЧрд┐рдЯ рд╕реЗ рд╕рдм рдХреБрдЫ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ред

@rafasoares рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╛рдж рдЖрдпрд╛ред рдореИрдВ рдЕрдм рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред

рд╡рд┐рд╕реНрдордпрдХрд╛рд░реА! рдзрдиреНрдпрд╡рд╛рдж!

v3.17.2 рдЕрдм рдЬрд╛рд░реА рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдмрд╕ v3.17.2 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛!

рдпрд╣ рдореЗрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ред рдореИрдВ рдЗрд╕реЗ рдПрдХ рд░рд┐рдХреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

рддреЛ рдореИрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдЪрд▓рд╛ рдЧрдпрд╛ред рджреЛрдиреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рдорддрднреЗрдж рд╣реИрдВ?

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдЬрдм рдореИрдВ рдЗрд╕ рдмрд┐рдЯ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ:

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

рдЕрдЧрд░ рдореИрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдмрд┐рдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдлрдВрдХреНрд╢рдиреНрд╕ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ Firestore рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдЕрджреНрдпрддрди: рдпрджрд┐ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд JSON рдХреЗ рд╕рд╛рде functions.config().firebase рдХреЙрд▓ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

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

$#$3 [email protected] functions.config().firebase рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдерд╛ ( credential рдмрд┐рдЯ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдЬреЛ рдореБрдЭреЗ рдбреЙрдХреНрд╕ рд╕реЗ рдорд┐рд▓рд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рддреИрдирд╛рддреА рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред

@rafasoares рдореИрдВрдиреЗ Google-рдХреНрд▓рд╛рдЙрдб/рдлрд╝рдВрдХреНрд╢рдВрд╕-рдПрдореБрд▓реЗрдЯрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рдпрд╣реА рдЕрдВрддрд░ рд╣реИред "рдПрдирдкреАрдПрдо рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓-рдЬреА рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ рдФрд░ рдПрдирдкреАрдПрдо рдЖрдИ-рдЬреА рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕" рдЖрдЬрд╝рдорд╛рдПрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдореМрдЬреВрдж npm рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХрднреА-рдХрднреА рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд░рддреЗред

@rafasoares рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕реЗрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рдЧрд▓рдд рдорд┐рд▓рд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ # 618 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯреЙрд▓-рдЬреА https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1

@laurenzlong

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕реЗрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рдЧрд▓рдд рдорд┐рд▓рд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ # 618 рдореЗрдВ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ @rafasoares рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА, рдФрд░ рдореИрдВрдиреЗ npm install -g https://github.com/firebase/firebase-tools.git#laurenzlong-patch-1 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд╣реБрдИ рд╣реИред

npm install -g [email protected] рддрдХ, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЦреЗрдж рд╣реИ, рдореИрдВ рдпрд╛рд░реНрди рдФрд░ рдПрдирдкреАрдПрдо рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд╕рдХреЗ, рдореИрдВрдиреЗ рд╢рд╛рдпрдж рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╣рд╛рдБ, https://github.com/firebase/firebase-tools.git#laurenzlong -patch-1 рдЕрднреА рднреА рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА @google-cloud/[email protected] рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИред

@mono0926 @rafasoares рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
npm рдЗрдВрд╕реНрдЯрд╛рд▓ -g https://github.com/firebase/firebase-tools.git#ll -fixemu

рдЖрдкрдХреЗ рдзреИрд░реНрдп рдФрд░ рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@laurenzlong

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 . рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛

@laurenzlong

рдПрдирдкреАрдПрдо рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ -рдЬреА рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ && рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯрд╛рд▓ -рдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ 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 рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ?

@rafasoares

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдиреЛрдб v6.11.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред @ mono0926 рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ?

рдореИрдВ рдиреЛрдб . рдХреЗ рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

@ mono0926 рд╣рд╛рдБ, рдореИрдВ рдмрд╕ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЕрднреА рдирд╡реАрдирддрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рдЕрдкрдиреА рд╡реИрд╢реНрд╡рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдлрд╛рдИ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ (рд╕рд╛рде рд╣реА, рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ)ред рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реБрдП рдЖрдЬ рдХрдИ рдмрд╛рд░ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ, рд╢рд╛рдпрдж рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реАред

@rachelmyers @laurenzlong

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ npm install -g https://github.com/firebase/firebase-tools.git#ll-fixemu рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рдмрд╛рдж рддреНрд░реБрдЯрд┐ рд╡рд┐рд╡рд░рдг рдмрджрд▓ рдЧрдпрд╛ рд╣реИред

рдФрд░, рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рддреНрд░реБрдЯрд┐ рд╣рд▓ рд╣реЛ рдЧрдИ

рдЕрдЧрд░ рдореИрдВ [email protected] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореЗрд░реЗ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХреАред

@ mono0926 рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЬреЛ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдлрд╛рдпрд░рдмреЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдерд╛?

@rachelmyers @laurenzlong

рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХреА рдФрд░ рдореБрдЭреЗ рдмрд╛рдд рд╕рдордЭ рдореЗрдВ рдЖ рдЧрдИред

рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде,

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] рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЬреЛ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдлрд╛рдпрд░рдмреЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдерд╛?

рдореИрдВ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ project_id рдорд╛рди рдХреЛ рд╣рд╛рд░реНрдб рдХреЛрдбрд┐рдВрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдВред

рдЬрдм рдореИрдВрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

@ рдж-рдЕрд▓рдХреЗрдорд┐рд╕реНрдЯ рдореИрдВ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рднреА рдХрд░рддрд╛ рд╣реВрдВ: 3.16.0 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдареАрдХ рд╣реЛ рдЧрдИ!

npm install -g [email protected]

рдореИрдВ macOS рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ 10.13.2 рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рдиреЛрдб v8.9.4 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://docs.npmjs.com/getting-started/fixing-npm-permissionsред

рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕@3.17.2 рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд╕рдордЭ рдЖ рдЧрдпрд╛ :

+ [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 рдмрдЬреЗ рдорд╛рд░реНрдХрд╕ рд╣рд┐рдЪрд┐рдиреНрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореБрдЭреЗ рд╕рдордЭ рдЖ рдЧрдпрд╛ :

=== '/home/marcus/app' рд╕реЗ рд╕реЗрд╡рд╛ рджреЗ рд░рд╣рд╛ рд╣реИ...

рддреНрд░реБрдЯрд┐: рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдХреМрди рд╕реЗ рд▓рдХреНрд╖реНрдп рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рд╣реИрдВред рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЖрдкрдиреЗ рд╡реИрдз рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рд╣реИрдВ рдпрджрд┐ рдЖрдкрдиреЗ --only рдпрд╛ --except рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ firebase.json рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд╛рдВрдЫрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/firebase/firebase-tools/issues/609#issuecomment-359200751 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAAD_tJH6ez89mjEZVdJbPVMDqeKym76ks5tMlAQgaJpZM4Rj8M0
.

@ mono0926 рд╣рдордиреЗ рдХрднреА рднреА рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдХрд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ "рдлрд╝рд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕: рдХреЙрдиреНрдлрд┐рдЧ: рдЧреЗрдЯ> .runtimeconfig.json" рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЪрд░ .runtimeconfig.json рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ рдЬрд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдПрдореБрд▓реЗрдЯрд░ред

@ marcus7777 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ, рдЬрд┐рд╕реЗ https://github.com/firebase/firebase-tools/issues/442 рдореЗрдВ рдХреИрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдм рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ v.3.17.3 . рдореЗрдВ рддрдп рдХреА рдЧрдИ рд╣реИ

рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдирд┐рдкрдЯрд╛ рдЧрдпрд╛ред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо @laurenzlongред рдореИрдВ

@laurenzlong

рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ "рдлрд╝рд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕: рдХреЙрдиреНрдлрд┐рдЧ: рдЧреЗрдЯ> .runtimeconfig.json" рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЪрд░ .runtimeconfig.json рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ рдЬрд╛рдПрдВ рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рд╕рдордЭрд╛ред рдореИрдВ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрдирд╛ рднреВрд▓ рдЧрдпрд╛ред
рдпрд╣ functions/.runtimeconfig.json рд╣реИ:

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

рдореИрдВ v3.16.0 рдХреЗ рддрд╣рдд functions.config().environment. project_id рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (v3.17.3) рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ред

@ mono0926 рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирдпрд╛ рдЕрдВрдХ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдФрд░ рдпрд╣ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдлрд╝рд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@laurenzlong

рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирдпрд╛ рдЕрдВрдХ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдФрд░ рдпрд╣ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдлрд╝рд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ ЁЯСН: 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 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рдХрд┐рд╕реНрдордд рдирд╣реАрдВред
рдкреБрдирд╢реНрдЪ рдЬрд╝реЗрдирд┐рдпрд▓ (рд▓рд┐рдирдХреНрд╕) рдкрд░ рдЪрд▓рд╛рдПрдВ

@ marcus7777 рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЖрдк рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдореБрдЭреЗ рдПрдореБрд▓реЗрдЯрд░ рдХреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреЛ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рднреА рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА:

$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] рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рд╢реЗрд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:

тЮЬ  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 рдЬреИрд╕рд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдирд╡реАрдирддрдо рдлрд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реИрдВред рдЕрдкрдиреА рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд▓рд╛рдПрдБ: `npm i --save firebase-functions@latest '

рдмрд╛рдж рдореЗрдВ, рдЖрдкрдХреЗ functions/package.json рдореЗрдВ firebase-functions рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 0.8.1

@laurenzlong рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдпрд╣ рдореЗрд░рд╛ рдкреИрдХреЗрдЬ рд╣реИредрдЬреЗрд╕рди:

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

рдпрд╛рд░реНрди.рд▓реЙрдХ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рднреА рд╣реИ:

...

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 рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреНрдпрд╛ рд╣реИ? рд╣рдо рдЕрднреА рддрдХ рдореЛрдиреЛ рд░реЗрдкреЛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди/рдиреЛрдб_рдореЙрдбреНрдпреВрд▓/рдлрд╝рд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ @laurenzlong рдпрд╣ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдпрд╣ node_modules рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╡рдЬрд╣ рд╕реЗ рдХрд╛рдлреА рдмрдбрд╝реА рд╣реИ:

рдлрд╝реЛрд▓реНрдбрд░-рд╕рдВрд░рдЪрдирд╛.txt

рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕@3.17.5 (рдпрд╛рдиреА рдлрд╛рдпрд░рдмреЗрд╕ рд╕реАрдПрд▓рдЖрдИ) рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ, рдпрд╣ рд╕реАрдзреЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк 3.17.4 рдкрд░ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрдореНрдпреВрд▓реЗрд╢рди рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдореИрдВрдиреЗ рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ рд░реЗрдкреЛ рдореЗрдВ рдЗрд╕реА рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рд╛: рдлрд╛рдпрд░рдмреЗрд╕/рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕#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.

рд╕рд╛рде рд╣реА рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рд╕реАрдПрд▓рдЖрдИ рдЪрд▓рдиреЗ рдкрд░ рдПрдХ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рддреБрд░рдВрдд рдмрд╛рдж рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИред рдХреНрдпрд╛ рдЗрд╕ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

@BernalCarlos рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ functions dir рдореЗрдВ рд╕рд░реНрд╡рд┐рд╕ рдПрдбрдорд┐рди рдХреБрдВрдЬреА рдбрд╛рд▓ рджреА рд╣реИ? рдФрд░ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рд╢реЗрд▓ рдореЗрдВ GOOGLE_APPLICATION_CREDENTIALS рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рд╣реИ?
рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ https://firebase.google.com/docs/functions/local-emulator

рдпрджрд┐ рдЖрдк Firebase рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпрд╛ рдЕрдиреНрдп Google API рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ GOOGLE_APPLICATION_CREDENTIALS рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рддреЛ @BernalCarlos рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ https://github.com/firebase/firebase-tools/issues/691 рдЬреИрд╕реА рд╣реА рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдареАрдХ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рд╕реАрдПрд▓рдЖрдИ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЬрдм рдореИрдВ const app = admin.initializeApp(functions.config().firebase); рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
```
"рдирд┐рд░реНрднрд░рддрд╛": {
"рдлрд╝рд╛рдпрд░рдмреЗрд╕-рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ": "~ 5.8.1",
"рдлрд╝рд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рдВрд╕": "^0.8.1"
}
````

@Jhony0311 рдЖрдк рднреА рд╢рд╛рдпрдж #691 . рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ

рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ firebase deploy --only functions рд▓реЗрдХрд┐рди рдирд╣реАрдВ firebase serve --only functions ред

рдпрд╣ "рдПрдирдкреАрдПрдо рд░рди рд╕рд░реНрд╡" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ,

рдореИрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реВрдВ: рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реАред
рдЪреЗрддрд╛рд╡рдиреА: рдЖрдк Node.js v10.5.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди Google рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗрд╡рд▓ v6.11.5 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдХрд╛рд░реНрдп: getSomeData рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓
рдореИрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реВрдВ: рдХреЛрдИ HTTPS рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рди: рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

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, рдирд┐рдХреЛрд▓рд╕ рд╕реНрдЯрд░реНрдо рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди - рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдХреЛрдИ рдлрд╛рдпрд░рдмреЗрд╕ рд╕реЗрд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ - рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпред
рдпрд╣ "рдПрдирдкреАрдПрдо рд░рди рд╕рд░реНрд╡" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ,
рдореИрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реВрдВ: рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реАред
рдЪреЗрддрд╛рд╡рдиреА: рдЖрдк Node.js v10.5.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди Google рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗрд╡рд▓ v6.11.5 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдХрд╛рд░реНрдп: getSomeData рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓
рдореИрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реВрдВ: рдХреЛрдИ HTTPS рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рди: рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдлрд╛рдпрд░рдмреЗрд╕ рд╕рдВрд╕реНрдХрд░рдг: 3.19.3
рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ:
'рд╕рдЦреНрдд рдЙрдкрдпреЛрдЧ';

рдХреЙрдиреНрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдлрд╝рд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рдВрд╕');
рдХреЙрдиреНрд╕реНрдЯ рдПрдбрдорд┐рди = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдлрд╛рдпрд░рдмреЗрд╕-рдПрдбрдорд┐рди');

admin.initializeApp ();

Exports.getSomeData = functions.https.onRequest((req, res) => {
admin.firestore().doc('рдлреАрдбрдмреИрдХ/d8pGxmML5ZKLYEy5jyhm').get()
.then(doc => res.send(doc.data ()))
рдХреИрдЪ (рдЧрд▓рддреА => res.status (500)ред рднреЗрдЬреЗрдВ (рдЧрд▓рддреА));
});
рдХреЛрдИ рд╕реБрдЭрд╛рд╡?
-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдпрджрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХреЗ fulfillment s рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреЛрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдереАред рдЬреЛ рд╣рд▓ рд╣реБрдЖ рд╡рд╣ рд╡реИрд╕рд╛ рд╣реА рдерд╛ рдЬреИрд╕рд╛ @rafasoares рдиреЗ рдХрд╣рд╛ рдерд╛ред

рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ firebase init рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП package.json рдбрд╛рдпрд▓реЙрдЧрдлреНрд▓реЛ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдореБрджреНрджрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдареАрдХ рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдЬрдорд╛рдирдд рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмрд╕ рдПрдХ JSON рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореБрдЭреЗ рдПрдХ рдлрд┐рдХреНрд╕ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рдПрдирдкреАрдПрдо рдЪрд▓рд╛рдирд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ firebase deploy рдЪрд▓рд╛рдХрд░ рдмрдЧ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ firebase serve рдЪрд▓рд╛рдпрд╛ рдФрд░ рдмрдЧ рдЪрд▓рд╛ рдЧрдпрд╛

рдореИрдВрдиреЗ рд╕рднреА рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕, рдлрд╛рдпрд░рдмреЗрд╕-рдПрдбрдорд┐рди, рдлрд╛рдпрд░рдмреЗрд╕-рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдирд╡реАрдирддрдо рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рддрдм рднреА рдпрд╣ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрдм рдореИрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рди рд╢реЗрд▓ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ

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] рдХрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрд╛ред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдлрд╛рдпрд░рдмреЗрд╕ рдпрд╛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ рд╣реЛред
рдЖрдкрдХреЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдЖрдкрдХреЛ рдХрд╛рдордпрд╛рдмреА рдорд┐рд▓реЗред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Symbolk picture Symbolk  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SJAnderson picture SJAnderson  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Ridermansb picture Ridermansb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

laurenzlong picture laurenzlong  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hmazter picture hmazter  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ