Firebase-tools: рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрддреНрдпрдВрдд рдзреАрдорд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдирд╡ре░ 2017  ┬╖  94рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: firebase/firebase-tools

рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА

3.15.0

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг

рдХреЗрд╡рд▓ 1 рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг functions рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

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

exports.ping = functions.https.onRequest((req, res) => {
  res.status(200).send('pong');
}

рдЕрдм firebase deploy --only functions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рддреЗрдЬреА рд╕реЗ рддреИрдирд╛рдд рдХрд░реЗрдВред рдЕрдм рдПрдХ рдЫреЛрдЯреА рдлрд╝рдВрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЕрдкрд▓реЛрдб/рддреИрдирд╛рддреА рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡рд╣ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдЕрдкрд▓реЛрдб/рддреИрдирд╛рддреА рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ preparing functions directory for uploading... рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рд▓рдЯрдХрд╛ рд░рд╣рддрд╛ рд╣реИред

image

firebase deploy --only functions рдХреЗ рд▓рд┐рдП рдбреАрдмрдЧ рд▓реЙрдЧ:
_рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдЪрд░рдг рдореЗрдВ рдПрдХ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИ: рдХреЛрдб рдХреА рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдлрд╝рдВрдХреНрд╢рдиред_

> firebase deploy --only functions --debug
[2017-11-14T10:03:55.799Z] ----------------------------------------------------------------------
[2017-11-14T10:03:55.804Z] Command:       C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\firebase-tools\bin\firebase deploy --only functions --debug
[2017-11-14T10:03:55.806Z] CLI Version:   3.15.0
[2017-11-14T10:03:55.806Z] Platform:      win32
[2017-11-14T10:03:55.806Z] Node Version:  v6.11.1
[2017-11-14T10:03:55.807Z] Time:          Tue Nov 14 2017 04:03:55 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:55.807Z] ----------------------------------------------------------------------

[2017-11-14T10:03:55.826Z] > 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"]
[2017-11-14T10:03:55.827Z] > authorizing via signed-in user
[2017-11-14T10:03:55.831Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/marktec-itesm
 Tue Nov 14 2017 04:03:55 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:56.230Z] <<< HTTP RESPONSE 200 server=nginx, date=Tue, 14 Nov 2017 10:03:57 GMT, content-type=application/json; charset=utf-8, content-length=108, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store
[2017-11-14T10:03:56.232Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/database/marktec-itesm/tokens
 Tue Nov 14 2017 04:03:56 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:56.622Z] <<< HTTP RESPONSE 200 server=nginx, date=Tue, 14 Nov 2017 10:03:57 GMT, content-type=application/json; charset=utf-8, content-length=262, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store

=== Deploying to 'marktec-itesm'...

i  deploying functions
[2017-11-14T10:03:57.040Z] > [functions] package.json contents: {
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase experimental:functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase-admin": "~5.4.2",
    "firebase-functions": "^0.7.1"
  },
  "private": true
}
i  functions: ensuring necessary APIs are enabled...
i  runtimeconfig: ensuring necessary APIs are enabled...
[2017-11-14T10:03:57.043Z] >>> HTTP REQUEST GET https://servicemanagement.googleapis.com/v1/services/cloudfunctions.googleapis.com/projectSettings/marktec-itesm?view=CONSUMER_VIEW
 Tue Nov 14 2017 04:03:57 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:57.044Z] >>> HTTP REQUEST GET https://servicemanagement.googleapis.com/v1/services/runtimeconfig.googleapis.com/projectSettings/marktec-itesm?view=CONSUMER_VIEW
 Tue Nov 14 2017 04:03:57 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:57.479Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:03:58 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
+  functions: all necessary APIs are enabled
[2017-11-14T10:03:57.488Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:03:58 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
+  runtimeconfig: all necessary APIs are enabled
[2017-11-14T10:03:57.489Z] >>> HTTP REQUEST GET https://appengine.googleapis.com/v1/apps/marktec-itesm
 Tue Nov 14 2017 04:03:57 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:57.490Z] >>> HTTP REQUEST GET https://apikeys.googleapis.com/v1/projects/marktec-itesm/apiKeys
 Tue Nov 14 2017 04:03:57 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:57.775Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:03:58 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:03:57.950Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:03:58 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
i  functions: preparing functions directory for uploading...
[2017-11-14T10:05:52.258Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/marktec-itesm/configs
 Tue Nov 14 2017 04:05:52 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:05:52.676Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:05:53 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
i  functions: packaged functions (22.1 KB) for uploading
[2017-11-14T10:06:01.593Z] >>> HTTP REQUEST GET https://www.googleapis.com/storage/v1/b/staging.marktec-itesm.appspot.com
 Tue Nov 14 2017 04:06:01 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:01.940Z] <<< HTTP RESPONSE 200 x-guploader-uploadid=AEnB2UpSfip_C_K1wvCJaLNVW1q05_zW3D3fph0U7sYHr6_9M5InFI0Pi_X1VFc8B5PpbZImDdZiAaZZLqWXdl-JxdzedIZeExTeX4ifDbfvg7G8tsjPm1Y, etag=CAE=, vary=Origin, X-Origin, content-type=application/json; charset=UTF-8, expires=Tue, 14 Nov 2017 10:06:02 GMT, date=Tue, 14 Nov 2017 10:06:02 GMT, cache-control=private, max-age=0, must-revalidate, no-transform, content-length=548, server=UploadServer, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", connection=close
[2017-11-14T10:06:01.942Z] >>> HTTP REQUEST POST https://www.googleapis.com/upload/storage/v1/b/staging.marktec-itesm.appspot.com/o?uploadType=media&name=firebase-functions-source ReadStream {
  _readableState:
   ReadableState {
     objectMode: false,
     highWaterMark: 65536,
     buffer: BufferList { head: [Object], tail: [Object], length: 1 },
     length: 22627,
     pipes: null,
     pipesCount: 0,
     flowing: null,
     ended: true,
     endEmitted: false,
     reading: false,
     sync: false,
     needReadable: false,
     emittedReadable: true,
     readableListening: false,
     resumeScheduled: false,
     defaultEncoding: 'utf8',
     ranOut: false,
     awaitDrain: 0,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: true,
  domain: null,
  _events: { end: [Function] },
  _eventsCount: 1,
  _maxListeners: undefined,
  path: 'C:\\Users\\benja\\AppData\\Local\\Temp\\firebase-functions-69565Vb7CkPZp0rr.zip',
  fd: 6,
  flags: 'r',
  mode: 438,
  start: undefined,
  end: undefined,
  autoClose: true,
  pos: undefined,
  bytesRead: 22627 }
 Tue Nov 14 2017 04:06:01 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:02.601Z] <<< HTTP RESPONSE 200 x-guploader-uploadid=AEnB2UqV_ml27ZAt9W3ouCst97NUKPW4MeltDmxl06PA4sGBy6A8fqo0bAbEKHT0vokHMXo0t0yhOY0ve3XT0RrLjsiDwXyhwA, etag=CJPx8MbovdcCEAE=, vary=Origin, X-Origin, content-type=application/json; charset=UTF-8, cache-control=no-cache, no-store, max-age=0, must-revalidate, pragma=no-cache, expires=Mon, 01
Jan 1990 00:00:00 GMT, date=Tue, 14 Nov 2017 10:06:03 GMT, content-length=860, server=UploadServer, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", connection=close
+  functions: functions folder uploaded successfully
[2017-11-14T10:06:02.604Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/projects/marktec-itesm/locations/us-central1/functions
 Tue Nov 14 2017 04:06:02 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:02.845Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:03 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
i  functions: updating function verifyItesmDomain...
[2017-11-14T10:06:02.849Z] Trigger is:  resource=projects/marktec-itesm, eventType=providers/firebase.auth/eventTypes/user.create
[2017-11-14T10:06:02.851Z] >>> HTTP REQUEST PUT https://cloudfunctions.googleapis.com/v1beta2/projects/marktec-itesm/locations/us-central1/functions/verifyItesmDomain { sourceArchiveUrl: 'gs://staging.marktec-itesm.appspot.com/firebase-functions-source',
  name: 'projects/marktec-itesm/locations/us-central1/functions/verifyItesmDomain',
  entryPoint: 'verifyItesmDomain',
  timeout: '60s',
  availableMemoryMb: 256,
  labels: { 'deployment-tool': 'cli-firebase' },
  eventTrigger:
   { resource: 'projects/marktec-itesm',
     eventType: 'providers/firebase.auth/eventTypes/user.create' } }
 Tue Nov 14 2017 04:06:02 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:03.064Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:03 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:03.068Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:03 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:03.257Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:04 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:05.262Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:05 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:05.428Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:06 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:07.431Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:07 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:07.603Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:08 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:09.606Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:09 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:09.755Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:10 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:11.757Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:11 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:11.912Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:12 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:13.913Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:13 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:14.078Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:14 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:16.080Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:16 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:16.249Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:17 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:18.252Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:18 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:18.405Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:19 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:20.406Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:20 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:20.588Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:21 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:22.591Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:22 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:22.753Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:23 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:24.768Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:24 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:24.952Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:25 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
+  functions[verifyItesmDomain]: Successful update operation.

+  Deploy complete!

Project Console: https://console.firebase.google.com/project/marktec-itesm/overview

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

рдпрд╣ рдореБрджреНрджрд╛ рдЪреВрддрдбрд╝ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд░реНрдж рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП: /

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

рджрд╛рдЦрд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдзреАрдореА рддреИрдирд╛рддреА рдХрд╛рд░реНрдп рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рджрд░реНрдж рдмрд┐рдВрджреБ рд╣реИ, рдФрд░ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@laurenzlong
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд░рд╣рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рддреИрдирд╛рддреА рд╣рдореЗрд╢рд╛ _functions рдкрд░ рд░реБрдХ рдЬрд╛рддреА рд╣реИ: рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддреИрдпрд╛рд░ рдХрд░рдирд╛..._ рднрд╛рдЧред
рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рджреЗрдирд╛ (рдЬреИрд╕реЗ: рдЗрд╕реЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдореЗрдВ 3-5 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреАред

рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рд╕реЛрдЪ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдмрд┐рддрд╛рдпрд╛ рдХрд┐ рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред

рд╕рдорд╕реНрдпрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЗрдирд┐рдЯ рдХрдорд╛рдВрдб рдиреЗ рдПрдХ 'рдиреЛрдб рдореЙрдбреНрдпреВрд▓' рдлреЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ рдЬреЛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИред рдореЗрд░реА рдорд╢реАрди рдкрд░ рдпрд╣ рд╣реИ: 22,903 рдлрд╝рд╛рдЗрд▓реЗрдВ, 2,782 рдлрд╝реЛрд▓реНрдбрд░ред рдХреЛрдб рдЙрди рд╕рднреА рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рдерд╛ рдпрд╣ рд░рд╣рд╛:

  1. рд▓реЙрдЧ рдкреНрд░рд┐рдВрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдХреЛрдб рдХреА рдзреАрдореА рд▓рд╛рдЗрди рдХреА рдкрд╣рдЪрд╛рди рдХреАред рдпрд╣ рдпрд╣рд╛рдВ рдкрд░ рд╣реИ:
    https://github.com/firebase/firebase-tools/blob/master/lib/prepareFunctionsUpload.js#L26

рд▓рд╛рдЗрди 26 рдореЗрдВ рддреИрдпрд╛рд░ рдлрдВрдХреНрд╢рдиреНрд╕рдЕрдкрд▓реЛрдб.рдЬреЗрдПрд╕:
fs.copySync(options.config.path(options.config.get('functions.source')), tmpdir.name);

  1. рдореИрдВрдиреЗ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЙрдкреА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ рд▓рд┐рдпрд╛ред рдореЗрд░реА рдорд╢реАрди рдкрд░ рдпрд╣ рд╣реИ:
    C:\Users\thoma\StudioProjects\LSystemAndroid\firestorefunctions
    -> C:\Users\thoma\AppData\Local\Temp\fbfn_752624vejX0cv3GEJI

рдлрдВрдХреНрд╢рди рдлреЛрд▓реНрдбрд░ CLI рдХрдорд╛рдВрдб init рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ:

  • node_modules (рд╡рд┐рд╢рд╛рд▓ рдЖрдХрд╛рд░)
  • .gitignore
  • index.js
  • рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди
  • pacakge-lock.json

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ CLI рдХрдорд╛рдВрдб init рдХреЛ рдЙрд╕ node_modules рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдпрд╣ 165MB рдмрдбрд╝рд╛ рд╣реИред рдпрд╣ рд╣рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

@thomasfishersm

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рдЗрд╕ рд▓рд╛рдЗрди рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/firebase/firebase-tools/blob/master/lib/prepareFunctionsUpload.js#L76

firebase init рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рднреА рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛, рдФрд░ рдЯреНрд░рд┐рдЧрд░ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рдЗрд╕ рддрд░рд╣ рд╕реАрдПрд▓рдЖрдИ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдШрдЯрдирд╛рдПрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рд╕реЗ рддреИрдирд╛рдд рдХрд░ рд╕рдХреЗ)ред

рдореИрдВрдиреЗ рд▓рд╛рдЗрди 26 рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдбрд┐рдмрдЧ рдкреНрд░рд┐рдВрдЯ рд▓рд╛рдЗрди рд▓рдЧрд╛рдИред рдЙрд╕ рд▓рд╛рдЗрди рдореЗрдВ рдорд┐рдирдЯ рд▓рдЧреЗред

рдлрд┐рд░, рдореИрдВрдиреЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рд╛ рдХрд┐ рдХреМрди рд╕реА рдлрд╛рдЗрд▓реЗрдВ рдХреЙрдкреА рдХреА рдЬрд╛ рд░рд╣реА рд╣реИрдВред рдЗрд╕рдореЗрдВ рд╕рднреА рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рдереАрдВред

рдлрд┐рд░, рдореИрдВрдиреЗ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред рддреИрдирд╛рддреА рдЕрдм рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реАред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рд╢реБрджреНрдзрддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИред рд╡рд╣ рдХреЛрдб рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЧрд╛рдпрдм рдереАрдВред

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

рд╣рд╛рдБ, рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реБрдИ рдереА, node_modules рдХреЙрдкреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡реИрдз рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рди рдХрд░реЗрдВред рдпрд╣ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рд╕реАрдПрд▓рдЖрдИ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ ".runtimeconfig.json" рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдкрд▓реЛрдб рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╣рдо рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд░реЛрдд рдХреЛрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИред рддреЛ рд╢рд╛рдпрдж рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рддреИрдирд╛рддреА рдХреА рдЧрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЦреЗрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред "рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ ..." рдЪрд░рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдЕрдзрд┐рдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рди рд▓рдЧреЗ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ рд╣реИрдВрдЧ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рдЙрдмрдВрдЯреВ рдбрдмреНрд▓реВрдПрд╕рдПрд▓ рдкрд░ рдерд╛ред рд▓рд┐рдирдХреНрд╕ рдкрд░, "рддреИрдпрд╛рд░реА" рдЪрд░рдг рд▓рдЯрдХрд╛ рдирд╣реАрдВ рд╣реИред "рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп" рдЪрд░рдг рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрддрдирд╛ рдирд╣реАрдВ рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рдерд╛ред

рдпрд╣ рдореБрджреНрджрд╛ рдЪреВрддрдбрд╝ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд░реНрдж рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП: /

рдореИрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рдЗрд╕реЗ рд╕реНрдердЧрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдЗрд╕ рддреНрд░реБрдЯрд┐ рдиреЗ рдореЗрд░рд╛ рдмрд╣реБрдд рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд┐рдпрд╛ред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛!

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

@PulpoEnPatineta рдпрд╣ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рддреИрдирд╛рддреА рдХреЗ рд╕рдордп рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИред

@McStuffins рдпрджрд┐ рдЖрдкрдХреА рдХрд╛рд░ рдХреЛ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдореЗрдВ рдкрд╛рдБрдЪ рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдпрд╛ рдмрд╕ рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрд╣рдж рдзреАрдорд╛ рд╣реИред

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

рдЖрдЬ рддрдХ, рдЬрдм рдореБрдЭреЗ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕реАрдорд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рдореИрдВ рдЕрдм рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рддреИрдирд╛рддреА рджреИрдирд┐рдХ рдХреЛрдЯрд╛ (12,000 рд╕реЗрдХрдВрдб) рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдЯреНрд░рд┐рдЧрд░реНрд╕ (рдкрдмрд╕реБрдм, рдлрд╛рдпрд░рд╕реНрдЯреЛрд░, https) рдХреЗ рд╕рд╛рде ~ 55 рдХрд╛рд░реНрдп рд╣реИрдВред рдХреНрдпрд╛ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рд╣реИ?

рдЕрдм рдореБрдЭреЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рджреЛ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реИ: rofl:: рд▓реЙрд▓реАрдкреЙрдк:: +1:: 1st_place_medal:: рддрд╛рдмреВрдд:: рдЯреИрдХреЛ:: рдХреИрдХреНрдЯрд╕:: рдбрд╛рдВрд╕рд░:: рдореБрд╕реНрдХрд╛рди_рдЗрдореНрдк:

рдХрднреА-рдХрднреА, рдЬрдм рдореИрдВ рддреИрдирд╛рддреА рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдмреЗрд╣рдж рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд╣рддреА рд╣реИ "рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐"

@srinurp рдХреГрдкрдпрд╛ рдКрдкрд░ рд╕реЗ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рджреЗрдЦреЗрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдЧрд╛ред рдФрд░ рдмреИрдХрдПрдВрдб рдЯреАрдо рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ (рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рдЙрдкрдХреНрд░рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдкрдХреЗ рдзреИрд░реНрдп рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред)

@merlinnot рдЬрдм рддрдХ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рддреИрдирд╛рддреА рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --only рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред https://firebase.google.com/docs/cli/#partial_deploys рджреЗрдЦреЗрдВред

@McStuffins "рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐" рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЙрддреНрдкрд╛рджрди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреГрдкрдпрд╛ https://firebase.google.com/support/ рдкрд░ рдПрдХ рд╕рдорд░реНрдерди рдЯрд┐рдХрдЯ рджрд░реНрдЬ рдХрд░реЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЙрддреНрдкрд╛рджрди рд╕рдорд╕реНрдпрд╛ рдЪрд▓ рд░рд╣реА рд╣реИ рдлрд╛рдпрд░рдмреЗрд╕ рд╕реНрдерд┐рддрд┐ рдбреИрд╢рдмреЛрд░реНрдб

@laurenzlong рдореБрдЭреЗ рддреИрдирд╛рддреА рдХреЗ рдмреАрдЪ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реАрдЖрдИ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕рд╣рд┐рдд)ред рдФрд░ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ firebase-functions , firebase-admin , lodash рдЖрджрд┐ рдЬреИрд╕реЗ рдкреИрдХреЗрдЬ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рдирдХрд╛ рдореИрдВ рд╣рд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ?

@merlinnot рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛрдЯрд╛ Google рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдореИрдВ рдЙрдирдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореБрджреНрджреЛрдВ рдЯреНрд░реИрдХрд░ рдкрд░ рдПрдХ рдЕрдиреБрд░реЛрдз рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ: https://cloud.google.com/functions/docs/support

рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП: https://issuetracker.google.com/issues/71385193

@laurenzlong рд╕реНрд░реЛрдд рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╕рдордп node_modules рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ npm install --production рдпрд╛ yarn install --production рдХрд░реЗрдВ? рдЪреВрдВрдХрд┐ рдпреЗ рдЙрдкрдХрд░рдг рдХреЗрд╡рд▓ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

@horacehylee
рдпрд╣ рдПрдХ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рдмрджрд▓рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреБрдЫ рд▓реЛрдЧ (рд╕реНрд╡рдпрдВ рд╢рд╛рдорд┐рд▓) рдЕрднреА рднреА рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде (рдЬреИрд╕реЗ "рдкреИрдХреЗрдЬ-рдирд╛рдо": "./externs/package.tgz") рджреНрд╡рд╛рд░рд╛ рдкреИрдХреЗрдЬ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ 'рдирд┐рдЬреА рднрдВрдбрд╛рд░ рдХреЗ рд╕рд╛рде ( рдЕрдм рддрдп ) рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдгред рдЙрдкрдХрд░рдг рдХреЛ рдЗрди рд╕рднреА рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

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

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

рдирд┐рдЪрд▓реА рдкрдВрдХреНрддрд┐: рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрднреА рдЫреЛрдбрд╝ рджреЗрдВ: +1:

@horacehylee @merlinnot 2 рд╕реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреГрдкрдпрд╛ https://github.com/firebase/firebase-tools/pull/578 рджреЗрдЦреЗрдВ, рд╕реАрдПрд▓рдЖрдИ рдХреА рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдЕрдм рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдлрд╝реЛрд▓реНрдбрд░ рдЕрд╡рдзрд┐ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдирд╛рдПрдЧреАред

рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдРрд╕рд╛ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ 1 рдЬреАрдмреАрдкреАрдПрд╕ рдлрд╛рдЗрдмрд░ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдмреИрдареЗ рдЫрд╣ 4GHz рдХреЛрд░ рдорд╢реАрди рдкрд░ 5 рд▓рд╛рдЗрди, 1kb рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ MINUTES рд▓реЗрддрд╛ рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкреЗрд╢рд╛рдм рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ "рдЕрдкрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ" рдХреЗ рджреМрд░рд╛рди рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ?

рдПрдХ tmp dir рдореЗрдВ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рд╕рд╣рд┐рдд, рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ред

рд╣рдорд╛рд░реА рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдЧреА рдФрд░ рдЕрдм рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рддреИрдирд╛рддреА

рд╕реВрд░реНрдп рдкрд░, 7 рдЬрдирд╡рд░реА 2018, 5:05 рдЕрдкрд░рд╛рд╣реНрди hmexx [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдлрд╝рд╛рдпрд░рдмреЗрд╕ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ MINUTES рд▓рдЧрддреЗ рд╣реИрдВ
a . рдкрд░ рдмреИрдареЗ рдЫрд╣ 4GHz рдХреЛрд░ рдорд╢реАрди рдкрд░ 5 рд▓рд╛рдЗрди, 1kb рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ
1 рдЬреАрдмреАрдкреАрдПрд╕ рдлрд╛рдЗрдмрд░ рдХрдиреЗрдХреНрд╢рдиред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкреЗрд╢рд╛рдм рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдБ рдХреНрдпрд╛
"рдЕрдкрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ" рдХреЗ рджреМрд░рд╛рди рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ?

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

@mbleeigh

рдареАрдХ рд╣реИред рдЗрд╕рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реБрдЖред рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рд╣рд╛рд╕реНрдп рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдПрдХ рдпрд╛ рджреЛ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рдЧрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ "рдкреИрдХреЗрдЬреНрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ ( 37.55kb !!!) рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП" lol

рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП Thxред

рдПрдЪред

рджрд┐рди 19. рдлрд╛рдпрд░рдмреЗрд╕ рдЕрднреА рднреА рддреИрдирд╛рдд рд╣реИред *рдкрдХреМрдбрд╝реЗ рдкреЙрдкрдХреЙрд░реНрди*

рд╣рд╛рдВред

рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХрдм рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдордп рдореЗрдВ рдХрд┐рддрдиреЗ% рд╕реБрдзрд╛рд░ рдХреА рдЙрдореНрдореАрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?

рдмрд╕ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓рддреЗ рд░рд╣рдирд╛ рд╣реИред

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

рд╕реЛрдо, 15 рдЬрдирд╡рд░реА, 2018 рдХреЛ рджреЛрдкрд╣рд░ 12:42 рдмрдЬреЗ hmexx [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рд╣рд╛рдВред

рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХрдм рд╣реЛрдЧреА, рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рдХрд┐рддрдирд╛% рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛
рд╣рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рдЙрдореНрдореАрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?

рдмрд╕ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓рддреЗ рд░рд╣рдирд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/firebase/firebase-tools/issues/536#issuecomment-357784792 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAAD_vaj-WngS9dMj7j5Q2AesM0tNMvVks5tK7hBgaJpZM4QdF3g
.

рдпрд╣ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛!

@mbleeigh рдХреНрдпрд╛ рдпрд╣ рд░рд┐рд▓реАрдЬ 3.17.4 рдореЗрдВ рд╣реИ?

@jkossis v3.17.0

рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕ рд╕реЗ:

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

рдорд┐рдирдЯреЛрдВ рд╕реЗ рд╕реЗрдХрдВрдб рддрдХ: рдЕрдЪреНрдЫрд╛ рдХрд╛рдо!

рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ [email protected] рдФрд░ [email protected] рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕рдордпрдмрджреНрдз рдЖрдЙрдЯрдкреБрдЯ рд╣реИред рдореИрдВрдиреЗ рдирд╛рдо рдмрджрд▓ рджрд┐рдП рд╣реИрдВ рд▓реЗрдХрд┐рди рд╡реЗ рдЖрд░рдИрдПрд╕рдЯреА рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕, рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдСрде рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╣реИрдВред

тЮЬ  functions git:(master) тЬЧ firebase --version
3.17.4
тЮЬ  functions git:(master) тЬЧ time firebase deploy --only functions

=== Deploying to 'XXX'...

i  deploying functions
i  functions: ensuring necessary APIs are enabled...
тЬФ  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (123.07 KB) for uploading
тЬФ  functions: functions folder uploaded successfully
i  functions: updating function 1...
i  functions: updating function 2...
i  functions: updating function 3...
i  functions: updating function 4...
i  functions: updating function 5...
i  functions: updating function 6...
тЬФ  functions[1]: Successful update operation.
Function URL (1): https://us-central1-XXX.cloudfunctions.net/1
тЬФ  functions[3]: Successful update operation.
тЬФ  functions[4]: Successful update operation.
тЬФ  functions[5]: Successful update operation.
тЬФ  functions[6]: Successful update operation.
тЬФ  functions[2]: Successful update operation.
Function URL (2): https://us-central1-XXX.cloudfunctions.net/2

тЬФ  Deploy complete!

Project Console: https://console.firebase.google.com/project/XXX/overview
firebase deploy --only functions  4.59s user 1.07s system 1% cpu 6:09.26 total

@adamduren preparing functions directory for uploading... . рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рдЕрддреНрдпрдзрд┐рдХ рд╕рдордп рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдерд╛

рдЦреБрдж рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрднреА рднреА рдХрд╛рдлреА рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдвреЗрд░:
screen shot 2018-01-31 at 18 57 02

"firebase-admin": "^5.8.2",
"firebase-functions": "^0.8.1",

npm install -g npm@latest рдиреЗ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдЗрдирдкреБрдЯ рджрд┐рдпрд╛, рдФрд░ firebase-cli рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рднреА рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ред

screen shot 2018-01-31 at 19 11 38

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

рдареАрдХ рд╣реИ, npm install -g firebase-tools рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдЦрд┐рд░рдХрд╛рд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдпрд╢ рдХреА рдкреНрд░рд╢рдВрд╕рд╛

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рдПрдХ рд╣реА рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ ("рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ ..")
рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ 25/30 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрд╛
рдореЗрд░реЗ рдкрд╛рд╕ 4 рдирд┐рдЬреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╡рдЬрди рд▓рдЧрднрдЧ 2.20 mb . рд╣реИ
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдирд┐рдЬреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдерд╛ред
рдХреНрдпрд╛ рдореБрдЭрд╕реЗ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рд░рд╣реА рд╣реИ? рдпрд╛ рдпрд╣ рддрд░реАрдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ?

2018-5-9
firebase deploy рдЕрднреА рднреА рдзреАрдорд╛ рд╣реИ, рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ
image

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ? рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╣рдлреНрддреЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдореЗрд░реА рддреИрдирд╛рддреА рдореЗрдВ 1-3 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ (25/30 рд╕реЗ)

рдореИрдВ рдХреБрдЫ рд╕рд░рд▓ рдХреЗ рд▓рд┐рдП 4+ рдорд┐рдирдЯ рдХрд╛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдордп рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ:

const functions = require('firebase-functions')

exports.test = functions.https.onRequest((req, res) => {
  res.send('Hello World')
})

i functions: updating function test... рд▓рдЯрдХреА рд╣реБрдИ рд░реЗрдЦрд╛ рд╣реИред
рдпрд╣ рдЗрддрдирд╛ рдзреАрдорд╛ рдХрднреА рдирд╣реАрдВ рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛!

@Robula рдХреНрдпрд╛ рдЖрдкрдиреЗ рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ?

рд╣рд╛рдВ, рдореЗрд░рд╛ рдРрд╕рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИред firebase тАФversion рд░рд┐рдкреЛрд░реНрдЯ 3.18.6ред

рдЖрдк рдореБрдЭрд╕реЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рд╡реЗ 3.18.6 рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд▓рд╣рд╛рд▓ 3.18.4 рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдареАрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИ ...

рд╣рд╛рд▓ рдХреЗ рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд░рдгрдиреАрддрд┐ рдореЗрдВ рдХреЛрдИ рдкреНрд░рддрд┐рдЧрдорди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ (рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдордп рдорд╢реАрди рд╕реЗ рдорд╢реАрди рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рднреА рдмрд╛рдж рдХреЗ рдЕрдкрдбреЗрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реИред

рдореИрдВ preparing functions directory for uploading... рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдордп рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рддреЗ рд╕рдордп рдЕрдХреЗрд▓реЗ рдЗрд╕ рдЪрд░рдг рдкрд░ рд▓рдЧрднрдЧ 7 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рддреИрдирд╛рддреА рдЪрд░рдг рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд▓рдЧрднрдЧ 5 рд╕реЗрдХрдВрдб рд▓реЗрддрд╛ рд╣реИред рдбрд┐рдмрдЧ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рдЪрд░рдгред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреИрдирд╛рддреА рдХреБрдЫ рд╣рдж рддрдХ рдзреАрдореА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдмрд╣реБрдд рдмрдбрд╝реА рд▓реИрдореНрдмреНрдбрд╛ рддреИрдирд╛рддреА рдЗрд╕рд╕реЗ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛрддреА рд╣реИ, 2 рджреЛ 3 рдорд┐рдирдЯ рдХреЗ рдЖрджреЗрд╢ рдкрд░, рдЬрд┐рд╕рдореЗрдВ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдмрд┐рд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ Google рдХреНрд▓рд╛рдЙрдб рдмрд┐рд▓реНрдб рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ 2 рд╕реЗ 3 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ, рдмрдирд╛рдо рд▓реИрдореНрдмреНрдбрд╛ рдореЗрдВ 10 рд╕реЗ 20 рд╕реЗрдХрдВрдбред рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдХреНрд▓реА рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░реЗ рдлрд╝рдВрдХреНрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЬрд╝рд┐рдк рдХрд░ рд░рд╣рд╛ рд╣реИ?

@laurenzlong , рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рддреИрдирд╛рдд рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╣реИ?

рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ 10 рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдПрдХрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрднреА рднреА рдзреАрдорд╛ рд╣реИред

+1 рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рдж рдзреАрдорд╛ рд╣реИред рдореИрдВрдиреЗ рдкреНрд░рддрд┐ рдШрдВрдЯрд╛-рдЯрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрди рдЬреЙрдм рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛, рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╕реНрд╡рд░, рдФрд░ рдЗрд╕реЗ рд╣рд░ рдмрд╛рд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдорд┐рдирдЯ рд▓рдЧрддрд╛ рд╣реИред

@laurenzlong рдлрд╝рд╛рдпрд░рдмреЗрд╕ рдкрд░ рдЖрдкрдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдзрдиреНрдпрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рддреИрдирд╛рддреА рдХреЗ рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдХреНрд░рд┐рдп рдпреЛрдЬрдирд╛ рд╣реИ? рдореИрдВ рдкреВрдЫрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдкрд╕рдВрдж рд╣реИ, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреАрдореА рддреИрдирд╛рддреА рдХреЗ рд╕рдордп рдХреЗ рдХрд╛рд░рдг рдЗрд╕рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 47 рдХреНрд▓рд╛рдЙрдб рдлрдВрдХреНрд╢рди рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реА рддреИрдирд╛рддреА рдореЗрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ 3-6 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдЗрд╕рдХреА рддреБрд▓рдирд╛ git push heroku master рд╕реЗ рдХрд░реЗрдВ, рдЬреЛ рд╣рд░реЛрдХреВ рдореЗрдВ рдХреЛрдб рдХреА рд╕рдорд╛рди рдорд╛рддреНрд░рд╛ рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 20-30 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓реЗрдЧрд╛ред рдФрд░ рд╡рд╣ рдХреЛрдб рддреБрд░рдВрдд рд╣рд░реЛрдХреВ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛрдЧрд╛ред рдлрд╛рдпрд░рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж рдПрдХ рдФрд░ 20-30 (рдпрд╛рджреГрдЪреНрдЫрд┐рдХ) рд╕рдордп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреА, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рддреИрдирд╛рдд рдХрд╛рд░реНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реЛрдВ (рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдирдП рдФрд░ рдкреБрд░рд╛рдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рдЪрд▓рддрд╛ рд╣реИ)ред

рддреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрдиреБрднрд╡ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:

*** Heroku:

git push heroku master

20-30s later ...

All newly-deployed functions are now running in a consistent/atomic way

*** Firebase:

firebase deploy --only functions

180-360s later ...

Functions are deployed but only some of the new ones are running, some old ones are still running

20-30s later ... 

All new functions running

рдлрд╛рдпрд░рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдкрд░рдорд╛рдгреБ рддреИрдирд╛рддреА рдХрд░рдирд╛ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж, рд╕рдордп рдХреА рдЕрд╡рдзрд┐ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдирдП рдХрд╛рд░реНрдпреЛрдВ, рдЙрдиреНрд╣реЗрдВ v_n+1 рдХрд╣рддреЗ рд╣реИрдВ, рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ v_n ред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдПрдХ рдмрдбрд╝рд╛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрднрд╡рддрдГ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдирдП рдФрд░ рдкреБрд░рд╛рдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИред рдпрд╣ рд╣рд░реЛрдХреВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдЬрд╣рд╛рдБ рдпрд╛ рддреЛ рд╕рднреА рдирдП рдХрд╛рд░реНрдп рддреИрдирд╛рдд рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдирдП рдХрд╛рд░реНрдп рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдХреЛрдИ рднреА рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрднреА-рдХрднреА рд╣рдорд╛рд░реЗ 47 рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ

тЪа  functions[retrieveFavorites(us-central1)]: Deployment error.
Server Error. getaddrinfo ENOTFOUND cloudfunctions.googleapis.com cloudfunctions.googleapis.com:443

рд╣рдо рдЕрддреНрдпрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдордорд┐рдд рдЧреАрдЧрд╛рдмрд┐рдЯ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рддреИрдирд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рдорд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдирд╣реАрдВ рд╣реИред

рддреЛ рд╣реЗрд░реЛрдХреВ рдХреЛ рдПрдХ рдкрд░рдорд╛рдгреБ рдбреАрдмреА рд▓реЗрдирджреЗрди (рд╕рднреА рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдЬрдмрдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рддреИрдирд╛рддреА рдЕрдВрддрддрдГ рдЖрдВрд╢рд┐рдХ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ ... рдпрд╣ рджреЗрд╡ рдУрдк рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреЛ рджрдмрд╛ рд░рд╣реЗ рд╣реИрдВ рдПрдХ рдкреГрд╖реНрда рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдЖрдзреА рд░рд╛рддред

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░ рддреИрдирд╛рддреА рдХрд╛ рдЕрдиреБрднрд╡ рд╣реЗрд░реЛрдХреВ рдпрд╛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рд╖реНрдкрдХреНрд╖ рд░реВрдк рд╕реЗ рдзреАрдорд╛ рдФрд░ рдХрдо рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ ... рдореБрдЭреЗ рдЧрд▓рдд рдордд рд╕рдордЭреЛ, рд╣рдореЗрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдкрд╕рдВрдж рд╣реИ рдФрд░ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╣рдорд▓реЗ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдмреЗрд╣рддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрд░рдмреЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рд╣рдо рдХрд╣реАрдВ рдФрд░ рдЬрд╛рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рддреИрдирд╛рддреА рдмрд╣реБрдд рджрд░реНрджрдирд╛рдХ рд╣реИред

Firebase рдкрд░ рдЖрдкрдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдЖрдкрдХреА рдорджрдж рдХреЗ рдЖрднрд╛рд░реА рд╣реИрдВ :-)ред

рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдкреЙрдЗрдВрдЯ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ/рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдмрд┐рд▓реНрдб рдЪрд░рдг рдореЗрдВ рд╕реБрдзрд╛рд░)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рддрд┐рдорд╛рд╣рд┐рдпреЛрдВ рдХрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдмреАрдЪ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рдзреИрд░реНрдп рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреА CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддреА рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдХреЛ --only рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдЖрдкрдХреА рддреИрдирд╛рддреА рдХреА рдЧрддрд┐ рдореЗрдВ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЛ рджреЗрдЦреЗрдВ: https://www.youtube.com/watch?v=iyGHW4UQ_Ts

@laurenzlong рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЙрд░реЗрдиред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд┐рд░реНрдл рдПрдХ рдЫреЛрдЯрд╛ рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рддреИрдирд╛рдд рд╣реЛрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 1 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдЙрд╕ рдЭрдВрдбреЗ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рднрд▓реЗ рд╣реА рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд┐рд░реНрдл рдПрдХ рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЕрднреА рднреА рдЕрдкреНрд░реИрд▓ 2019 рддрдХ рд╕рдЪрдореБрдЪ рдорд┐рдирдЯ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВ - рдлрд╛рдпрд░рдмреЗрд╕ рд╕рдВрд╕реНрдХрд░рдг 6.6.0 - рдореИрдВ рдЬреЛ рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣рд╛рдВ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реИ: https://firebase.google.com/docs/functions/get-started

рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ "рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди" рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рдорд┐рдирдЯ рд▓реЗрддрд╛ рд╣реВрдВ

рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЛ рднреА рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ, рдЬрдм рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ 10-15 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рдереЗред рдХрд╛рд░реНрдпреЛрдВ рдХреА рддреИрдирд╛рддреА рдХрд╛ рд╕рдордп рднреА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред

рдФрд░ рдлрд╛рдпрд░рдмреЗрд╕ рд╕реНрдерд┐рддрд┐ рдкреГрд╖реНрда рд╣рд░рд╛ рд╣реИ https://status.firebase.google.com/ ред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдпрд╣ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ?

firebase-tools 7.0.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

$ firebase deploy --only=hosting --token xxx

=== Deploying to 'xxx'...

i  deploying hosting
i  hosting[xxx]: beginning deploy...
i  hosting[xxx]: found 1959 files in public
тЬФ  hosting[xxx]: file upload complete
i  hosting[xxx]: finalizing version...
тЬФ  hosting[xxx]: version finalized
i  hosting[xxx]: releasing new version...
тЬФ  hosting[xxx]: release complete
тЬФ  hosting: Finished running postdeploy script.

тЬФ  Deploy complete!

Project Console: https://console.firebase.google.com/project/xxx/overview
Hosting URL: https://xxx.firebaseapp.com
тЬи  Done in 181.75s

@laurenzlong-

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

рдХреБрдЫ рддрд┐рдорд╛рд╣рд┐рдпреЛрдВ рдкрд╣рд▓реЗ рдЖрдкрдХреЗ рдЕрдВрддрд┐рдо рдиреЛрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдХреЛрдИ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛-рдкрдХреНрд╖ рдЕрдкрдбреЗрдЯ? рдЬрдм рддрдХ рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ, рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдЬрдм рддрдХ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд┐рд╕реА рднрд┐рдиреНрди/рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдкрд░ рдирд╣реАрдВ рдЪрд▓реА рдЬрд╛рддреА рд╣реИ, рддрдм рддрдХ рдмрдВрдж рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

Firebase functions рд╕рдм рдХреБрдЫ рдмрдирдиреЗ/рдЕрдкрд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдмрдирд╛рдпрд╛/рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рдиреЗ рдХрд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рдХрд╛рд╕ рд╡реЗрдЧ рд╣реИред

firebase --version
7.1.0

рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

@repentsinner рдмреИрдХрдПрдВрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб/рддреИрдирд╛рддреА рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ!) рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдЬрд╛рд░реА рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреА рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдореБрд▓реЗрдЯрд░ ( firebase emulators:start рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛!

@samtstern рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдПрдореБрд▓реЗрдЯрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ - рдореИрдВ рдПрдХ рд╕реНрдкрдВрджрди рдРрдк рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рдлрд╛рдпрд░рд╕реНрдЯреЛрд░ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реЗ functions.https.onCall рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ (рдлрд┐рд▓рд╣рд╛рд▓ рд╡реИрд╕реЗ рднреА) рдРрдк рдХреЗ рдЯреЗрд╕реНрдЯ рдмрд┐рд▓реНрдб рдореЗрдВ рд╕рдм рдХреБрдЫ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдореЗрд░реЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдп рдХреЗрдВрджреНрд░ рдХреЗ рд▓рд┐рдП рддреИрдирд╛рддреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрд╕ рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирдпрд╛ рд╕рд╛рд▓ рдореБрдмрд╛рд░рдХ рд╣реЛ рдЬреЛ рдЕрднреА рднреА рдмрдВрдж рд╣реИ рдФрд░ рдЕрднреА рднреА рддрдп рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ! рдореИрдВ

рд╢рд╛рдпрдж рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдпрд╛ рдУрдкреА рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "рдмреЗрд╣рдж рдзреАрдореА рдЧрддрд┐ рд╕реЗ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ" рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЧреНрд░ рддреИрдирд╛рддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЙрд╕ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдо рддрдм рд╕реЗ рдПрдХ рдирдпрд╛ "рддреИрдирд╛рддреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмреЗрд╣рдж рдзреАрдорд╛" рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ ... рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЕрднреА рднреА рдмреЗрд╣рдж рдзреАрдорд╛ рд╣реИ

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЗрд╕рд▓рд┐рдП рдмрдВрдж рдХрд░ рджреА рдЧрдИ рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╣рдо рд╕реАрдПрд▓рдЖрдИ рдХреА рдУрд░ рд╕реЗ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдирд┐рд╡реЗрд╢ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдХреЗрд╡рд▓ firebase deploy рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬрдм рд╡реЗ рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реЛрдВред

рдмреИрдХрдПрдВрдб рдкрд░рд┐рд╡рд░реНрддрди рдЕрднреА рднреА рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рджреЗрд░реА рд╣реБрдИ рд╣реИред

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг @samtstern рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕/рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдореБрджреНрджреЗ/рдЕрдиреБрд░реЛрдз рдХреЗрд╡рд▓ рд╕реАрдПрд▓рдЖрдИ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ? рдмреИрдХрдПрдВрдб рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░реЗрдкреЛ/рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ред

рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ- рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрдХреНрд╖ рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Google рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдФрд░ рд╕реНрдкрдВрджрди рдХреЗ рдПрдХреАрдХрд░рдг рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЯрд┐рди рдкрд░ рдПрдХ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рджреЗрд╡-рд╕рдордп рдХреА рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рд╕реБрдЭрд╛рдП рдЧрдП рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдбрд╛рд▓реА, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдПрдХреАрдХреГрдд рдлрд╛рдпрд░рдмреЗрд╕ рдкреНрд▓рд╕ рд╕реНрдкрдВрджрди рд╡рд┐рдХрд╛рд╕ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реБрдЖ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЙрдб рдмреИрдХрдПрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддрдирд╛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдирд╣реАрдВред рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдХреНрдХрд░ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рдирд╣реАрдВ рд╣реИред

@repentsinner рд╣рд╛рдБ рдпрд╣ рд░реЗрдкреЛ рдХреЗрд╡рд▓ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рдХрд╛рдо рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ рд╣рдо рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рд╣рдореЗрдВ рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬрдм рдХреБрдЫ рднреА рдЙрддреНрдкрд╛рджрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдпрд╣рд╛рдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдмреИрдХрдПрдВрдб рдУрдкрди рд╕реЛрд░реНрд╕ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдлрд╛рдпрд░рдмреЗрд╕ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрд░рдмреЗрд╕ рд╕рдорд░реНрдерди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВред

рд╕реНрдкрдВрджрди рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (рджреЗрдЦреЗрдВ: https://github.com/FirebaseExtended/flutterfire) рд▓реЗрдХрд┐рди рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдлрд╛рдпрд░рдмреЗрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЙрди рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ рджреЗрд╢реА Android/iOS/Web. рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рджрд┐рди рдпрд╣ рдмрджрд▓ рдЬрд╛рдП рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдлрд╝реНрд▓рдЯрд░ рдРрдк рдХреЛ рдлрд╛рдпрд░рдмреЗрд╕ рдПрдореБрд▓реЗрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рд╣реИрдВ, рдлрд╝реНрд▓рдЯрд░рдлрд╝рд╛рдпрд░ рд░реЗрдкреЛ рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓реЗрдВ рдФрд░ рдореБрдЭреЗ рд╕реАрд╕реА рдХрд░реЗрдВ, рддреЛ рдореИрдВ рд╕рд╣реА рдлрд╝реНрд▓рдЯрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдордЭ рдЧрдпрд╛, @samtstern рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЗрд╕ рд╕рдордп рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЗрд╕ рд╕рд╛рдорд╛рди рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛ рддреЛ FlutterFire рд░реЗрдкреЛ рдореЗрдВ рджреЗрдЦреВрдВрдЧрд╛ред

рдПрдореБрд▓реЗрдЯрд░ рдСрде рд╕рдВрджрд░реНрдн рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ 100% рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХрд╛рд░ IMO рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реА рддреИрдирд╛рддреА рд░реБрдХ рдЧрдИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ dotenv . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛

рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдореЗрд░рд╛ рд╕рд┐рд░ рдердкрдердкрд╛рдирд╛ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ рджрд░реНрдж рдмрд┐рдВрджреБ рд╣реИ я╕П

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдЖ рд░рд╣реЗ рд╣реИрдВ - рдПрдХ рдЪреАрдЬ рдЬреЛ рдореБрдЭреЗ рдорджрджрдЧрд╛рд░ рд▓рдЧреА, рд╡рд╣ рдереА functions.ignore рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмреНрд▓реЛрдЯ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ .git :
{ "functions": { "ignore": ["node_modules", ".git", ".gitignore", ".nyc_output", ".runtimeconfig.json", "firebase-debug.log", "tslint.json", "tests"] }

рдореИрдВрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рджреЗрд╡ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рджрд░реНрджрдирд╛рдХ рд╕реЗ рдкрд░реЗ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдЖ рд░рд╣реЗ рд╣реИрдВ - рдПрдХ рдЪреАрдЬ рдЬреЛ рдореБрдЭреЗ рдорджрджрдЧрд╛рд░ рд▓рдЧреА, рд╡рд╣ рдереА functions.ignore рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмреНрд▓реЛрдЯ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ .git :

"functions": {
    "ignore": ["node_modules", ".git", ".gitignore", ".nyc_output", ".runtimeconfig.json", "firebase-debug.log", "tslint.json", "tests"]
  }

рдЗрд╕рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗред рдЕрднреА рд▓рдЧрднрдЧ 65-70% рд╕рдордп рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рджрд┐рд▓рдЪрд╕реНрдк - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ functions рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдХреЗ рдиреАрдЪреЗ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ .git рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реА - рдЖрдкрдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ?

@mbleeigh рд╕рдЪред рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдорд╛рд░реНрдЯ рд╣реИ, рдФрд░ рдЗрдиреНрд╣реЗрдВ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

@mbleeigh рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди-рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдереЛрдбрд╝рд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рд╕рдм рдХреБрдЫ рдЬрдбрд╝ рдореЗрдВ рдЦрд┐рд╕рдХ рдЧрдпрд╛ред

рдпрд╣ рдореЗрд░реЗ firebase.json рд╕реЗ рдПрдХ рдЙрджреНрдзрд░рдг рд╣реИ:

  "functions": {
    "ignore": [
      "__mocks__",
      ".cache",
      ".commitlintrc.yaml",
      ".dependabot",
      ".editorconfig",
      ".eslintrc.yaml",
      ".firebase",
      ".firebaserc",
      ".git",
      ".gitattributes",
      ".github",
      ".gitignore",
      ".lintstagedrc.js",
      ".nvmrc",
      ".prettierignore",
      ".prettierrc.yaml",
      ".vscode",
      "CHANGELOG.md",
      "cloudbuild.yaml",
      "codecov.yml",
      "CONTRIBUTING.md",
      "coverage",
      "cSpell.json",
      "decisions",
      "firebase.json",
      "firestore.indexes.json",
      "jest.config.js",
      "node_modules",
      "README.md",
      "rfcs",
      "scripts",
      "src",
      "test",
      "tsconfig.json",
      "tsconfig.production.json"
    ],
    "source": "."
  },

рдореИрдВ рдЦреБрд╢реА рд╕реЗ рдЗрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреВрдВрдЧрд╛:
```
{
"рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ": ["lib", "package.json", "package-lock.json"]
}

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпреЗ рдЧреНрд▓реЛрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВ:

{
  "exclude": ["!{lib,package.json,package-lock.json}"]
}

рдЕрднреА-рдЕрднреА рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рд╕рдордп рджрд░реНрджрдирд╛рдХ рд╣реИред

рджрд░реНрджрдирд╛рдХ рддреИрдирд╛рддреА рд╕рдордп :(

рд╣рдорд╛рд░реЗ рдлрд╛рдпрд░рдмреЗрд╕ рдРрдк рдореЗрдВ рдЕрднреА 60 рдХреНрд▓рд╛рдЙрдб рдлрдВрдХреНрд╢рди рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред рдкрд╣рд▓реЗ рддреЛ рд╣рдореЗрдВ рдХреЛрдЯрд╛ рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рд╕рд╛рд░реА рддреИрдирд╛рддреА рд╡рд┐рдлрд▓рддрд╛рдПрдВ рд╣реЛрдиреЗ рд▓рдЧреАрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕реЗ рдбреЙрдХреНрд╕ рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмреИрдЪреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдпрд╣ рдЕрдм рд▓рдЧрд╛рддрд╛рд░ рддреИрдирд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдмреИрдЪ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдирд░ рдкрд░ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реАрдЖрдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ ~ 3 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдмреИрдЪ рд▓рдЧрднрдЧ 6 рдкреНрд░рддреНрдпреЗрдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрд▓ 10 рдмреИрдЪ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдордп рдХреЛ рд▓рдЧрднрдЧ 30 рдорд┐рдирдЯ рдмрдирд╛рддреЗ рд╣реИрдВред

рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдиреНрдпреВрдирддрдо рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЗ рдмрд╣реБрдд рдЫреЛрдЯреЗ рдмрд┐рдЯ рд╣реИрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдФрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╕реБрдирдХрд░ рд╡рд╛рдХрдИ рджреБрдЦ рд╣реБрдЖред рдПрдХ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ/рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдмрдВрдбрд▓ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рдВрддрд╛рдУрдВ/рдЖрдХрд╛рд░/рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕рднреА рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ (рдПрдХрд▓ рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдЬреЛ рддрдм рдЖрдВрддрд░рд┐рдХ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рддрдм рд╕реЗ рдХрдИ рдХреЛрдЯрд╛ рд╕реАрдорд╛рдУрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рд╡реЗ рдХрднреА-рдХрднреА рд╣реЛрддреЗ рд╣реИрдВ)ред

рдлрд┐рд░ рднреА, рдпрд╣ рдХреЛрдЯрд╛ рд╕реАрдорд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдо рд▓рдЧрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ "рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓" рдХреЗ рд▓рд┐рдП "80 рдкреНрд░рддрд┐ 100 рд╕реЗрдХрдВрдб" рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ Google рд╕рдорд░реНрдерди рдЗрд╕ рд╕реАрдорд╛ рдХреЛ рдФрд░ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рд╛ рд╕рдХрддрд╛?

рдлрд┐рд░ рднреА, рдпрд╣ рдХреЛрдЯрд╛ рд╕реАрдорд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдо рд▓рдЧрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ "рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓" рдХреЗ рд▓рд┐рдП "80 рдкреНрд░рддрд┐ 100 рд╕реЗрдХрдВрдб" рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ Google рд╕рдорд░реНрдерди рдЗрд╕ рд╕реАрдорд╛ рдХреЛ рдФрд░ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рд╛ рд╕рдХрддрд╛?

@dinvlad рдореИрдВ рдПрдкреАрдЖрдИ рд╕реАрдорд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рдХреНрд░реА рдФрд░ рд╕рдорд░реНрдерди рджреЛрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрддрд╛рдЫ рдХрд░ рд░рд╣рд╛ рдерд╛, рдпрд╣ рдЬреАрд╕реАрдкреА рдХрдВрд╕реЛрд▓ рдХреЛрдЯрд╛ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо/рдзреВрд╕рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЕрдВрддрддрдГ рд╣реИрдВрдЧрдЖрдЙрдЯ рдкрд░ рдПрдХ Google рдЗрдВрдЬреАрдирд┐рдпрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ "рд╡рд╣ рдХреЛрдЯрд╛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ" ... рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ред

рд╣рдордиреЗ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдорд╛рдирдХ рдЙрдкреЗрдХреНрд╖рд╛ рд╕реВрдЪреА рдореЗрдВ .git рдЬреЛрдбрд╝рд╛ рд╣реИ:
https://github.com/firebase/firebase-tools/pull/2395

рдЗрд╕рд╕реЗ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬ рдореЗрдВ рддреЗрдЬреА рдЖрдиреА рдЪрд╛рд╣рд┐рдПред рдмреЗрд╢рдХ рд╣рдо (Firebase CLI рдЯреАрдо) рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдмреИрдХрдПрдВрдб рдкрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рддреЛ firebase deploy --only hosting рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ

рдпрд╣рд╛рдБ рдкрд░ рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рднреА рд╕рдореВрд╣рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ "рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдкреНрд░рддрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЧреНрд░реЗрдиреНрдпреБрд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди" рдХреЗ рдмрдЬрд╛рдп "рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рддрд┐ рдлрд╝реАрдЪрд░ рдХреНрд╖реЗрддреНрд░" рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреА рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рдЪрд▓рд╛ рд░рд╣реА рд╣реИрдВ!

рдпрд╣ рдореБрджреНрджрд╛ рдХрдм рдФрд░ рдХреНрдпреЛрдВ рдмрдВрдж рд╣реБрдЖред рдпрд╣ рдирд╡рдВрдмрд░ 2017 рдореЗрдВ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЙрддрдиреА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рддрдиреА рддрдм рдереАред рдореБрдЭреЗ рдпрд╣рд╛рдВ 'рдмрдВрдж' рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдХрд┐ рдЗрд╕реЗ рдХреНрдпреЛрдВ рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдмрд╕ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдкреНрд░рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@chriscurnow рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ (рдмрдВрдж-рд╕реНрд░реЛрдд) рд╕рд░реНрд╡рд░ рдкрдХреНрд╖ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг рдирд╣реАрдВ, рднрд▓реЗ рд╣реА рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реАрдПрд▓рдЖрдИ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрдЯ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рддрд┐ @samtstern https://github.com рдореЗрдВ) /firebase/firebase-tools/issues/536#issuecomment-572830647)ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдмреИрдХ рдПрдВрдб рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЯреНрд░реИрдХрд░ рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдЕрдкрдбреЗрдЯ рдорд┐рд▓рддреЗ рд╣реИрдВ :(

Google рдХреЗ рдмреИрдХрдПрдВрдб рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕ рдмрдЧ рдХреЛ рдХреИрд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реИ

рдЬреИрд╕реЗ, рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ

рдЕрд░реЗ рджреЛрд╕реНрддреЛрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ Google рдХреЛ рдХрд░ рд╕рдХреЗрдВ рдФрд░ рд╢рд╛рдпрдж рд╡реЗ рд╕реБрдиреЗрдВрдЧреЗ?
https://firebase.google.com/support/troubleshooter/contact

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

@RenFontes рдореИрдВрдиреЗ рдЕрднреА рдХреЗрд╕ 00075974 рджрд╛рдпрд░ рдХрд┐рдпрд╛ рд╣реИ: рдлрд╛рдпрд░рдмреЗрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЗрддрдирд╛ рдзреАрдорд╛ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЕрдиреБрдкрдпреЛрдЧреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред рдореИрдВ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдЙрдирдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдХреНрдпрд╛ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП "рдЪреЗрдХрд╕рдо рдЯреНрд░реИрдХрд░" рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдмрджрд▓реЗ рд╣реБрдП рд▓реЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рд╕рд╛рде рд╣реА, рдЬреЛ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рдЯреНрд░реИрдХ рдХрд░реЗрдВ: vars, package, ...)?

@ рд╢реНрд░реАрдмреНрд░рд╣реНрдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХрд▓ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдХрд╛рд░рдг рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

рдмреИрдЪрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдбреЗрдЯ рдкрд░рдорд╛рдгреБ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрд┐рдд/рдмреИрдЪ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдореЗрдВ рдпрд╣рд╛рдВ Google рдХреА рдУрд░ рд╕реЗ рдПрдХ SLA рдФрд░ рдЙрдирдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдХрднреА-рдХрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? (рд╢рд╛рдпрдж рдЕрдХреНрд╕рд░) рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдмреЗрдХрд╛рд░ рд╣реИ..рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреАрдорд╛ рд╣реИ .. рдЖрдкрдХреЛ рдЬрдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП .. рдЬрд╛рдУ? рдХреНрдпрд╛ рдпрд╣ рдиреЛрдб рд╕реЗ рдмрд╣реБрдд рддреЗрдЬ рд╣реИ?

рдЕрднреА рднреА Google рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд╕рдордп рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗ?
рдкреАрдбрдмреНрд▓реНрдпреВрдП рд╕реЗ рдПрд╕рдПрд╕рдЖрд░ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдореБрдЭреЗ рд╣рд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП 7 рдорд┐рдирдЯ рдФрд░ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рд╛

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

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

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

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

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

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

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