firebase-рдЙрдкрдХрд░рдг:
[email protected]
рдордВрдЪ:
рдореИрдХ рдУ рдПрд╕
MacOS, рдиреЛрдб 10.15.3, [email protected]
рдлрд╛рдпрд░рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рдкрд░ рджреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдмрдирд╛рдПрдВред
Daud
'рдлрд╛рдпрд░рдмреЗрд╕ рдЯрд╛рд░рдЧреЗрдЯ: рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдбреЗрд╡ рдлрд╛рдпрд░рдмреЗрд╕-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ-рдЖрдИрдбреА рд▓рд╛рдЧреВ рдХрд░реЗрдВ'
Daud
'рдлрд╛рдпрд░рдмреЗрд╕ рдХреА рддреИрдирд╛рддреА - рдЕрдХреЗрд▓рд╛
рддреИрдирд╛рддреА рд╕рдлрд▓
[info] Project Console: https://console.firebase.google.com/project/project-name/overview
[debug] [2019-05-01T19:12:12.726Z] TypeError: Cannot read property 'deploys' of undefined
at /Users/reeda/.nvm/versions/node/v10.15.3/lib/node_modules/firebase-tools/lib/deploy/index.js:88:36
at process._tickCallback (internal/process/next_tick.js:68:7)
[error]
[error] Error: An unexpected error has occurred.
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рдпреЛрдЬрди рд╣реБрдП рд╣реИрдВред рдпрд╣ рддреНрд░реБрдЯрд┐ (рд╕реНрд░реЛрдд рдореЗрдВ) рд╕реЗ рдЖ рд░рд╣реА рд╣реИ: https://github.com/firebase/firebase-tools/blob/master/src/deploy/index.js#L111
@ рдореАрдорд░рд┐рдпрд╛рдЬ рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдЬрд╝рд░
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ firebase.json
рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "target": "dev"
рд╣реИ? рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╣рдордиреЗ рдЙрди рд╕рднреА рдХреЙрдиреНрдлрд┐рдЧрд░реНрд╕ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ hosintg:dev
рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рдереЗ рдФрд░ рд╣рдо рдПрдХ рдЦрд╛рд▓реА рдПрд░реЗ рдХреЗ рд╕рд╛рде рд░рд╣ рдЧрдП рдереЗред рд╣рдо рддрдм рдЙрд╕ рдЦрд╛рд▓реА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕рднреА рддреИрдирд╛рдд рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░реЗ, рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗред рдлрд┐рд░ рдЕрдВрдд рдореЗрдВ рд╣рдо рдХрдВрд╕реЛрд▓ рд▓рд┐рдВрдХ рдФрд░ рдЖрдкрдХреЗ рдирдП рддреИрдирд╛рдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рд╕рдордЭрд╛рддреА рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рднреА рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
(рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд: рдЖрдо рддреМрд░ рдкрд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реНрддрд░ рдПрдХ Firebase рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдФрд░ рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднреАрддрд░ рд╡рд┐рднрд┐рдиреНрди рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рди рд╣реЛ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмреНрд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЗрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдПрдХ рд╡реЗрдм рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЗрдЯ рд╣реИ,) рдФрд░ рдЖрдкрдХреЗ рдбреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЗрдЯ рдЬреЛ рдПрдХ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯреНрд╕ рдкрд░ рдПрдХ рд╣реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реИрдВ)ред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдСрдереЗрд╕ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЖрдкрдХреА firebase.json
рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдВ рдХрд┐ рдЖрдк firebase use dev
, firebase deploy
рдЬреИрд╕реЗ рдХреБрдЫ рднреА рдХрд░ рд╕рдХреЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВ, firebase use staging
, firebase deploy
, ...)
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]
}
}
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдлрд╛рдпрд░рдмреЗрд╕ рдмреИрд╢ рдЖрд░реНрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд╣реИ рди рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдЬрд╕рди рдлрд╛рдЗрд▓ рдореЗрдВред
Firebase.json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрдХреНрд╢рди рдХреЗ рддрд╣рдд рдЖрдкрдХреЛ "target": "dev"
рдХреЗ рд▓рд┐рдП firebase deploy --only hosting:dev
рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред --only
рдзреНрд╡рдЬ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ target
рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд┐рдирд╛ рддрдм рд╕реАрдПрд▓рдЖрдИ рдХреБрдЫ рднреА рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЬреЛ рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрднреА рд╕рд┐рд░реНрдл рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдпрд╣)ред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП json рдореЗрдВ, рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ json (рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛) рдХреА рдЬрдбрд╝ рдореЗрдВ рдбрд╛рд▓ рджреЗрдЧрд╛ рдпрд╛ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореЗрд░реА рдлрд╛рдпрд░рдмреЗрд╕рд░ рдлрд╝рд╛рдЗрд▓, рдореЗрд░реЗ рд░реВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдореЗрд░реА рджреВрд╕рд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВ рдХрд┐ рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдХрд┐ рдХрд╣рд╛рдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЗрд╕реЗ рдЖрдкрдХреЗ firebase.json
рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗ:
{
// ...
"hosting": [{ // Can be an array and have multiple configs, or an object if you've only got a single config
"target": "blog",
"public": "build/blog"
// ...
}],
// ...
}
рдпрд╣ рдбреЙрдХреНрд╕ рдкреГрд╖реНрда рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓рдХреНрд╖реНрдп рдФрд░ рдПрдХрд╛рдзрд┐рдХ рд╕рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
firebase target:apply hosting dev firebase-hosting-id
рддрдм firebase-hosting-id
рд╕рд╛рдЗрдЯ рдХрд╛ рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдк рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЕрднреА CLI рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ firebase use
рдХрдорд╛рдВрдб рд╕реЗ рд╣реИред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдЧрд▓рдд рд╕рдордЭрд╛ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдХреБрдЫ рд╣реЗрдбрд╡реЗ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдм 404 рдПрд░рд░ рдПрдВрдЯрд┐рдЯреА рдорд┐рд▓ рд░рд╣реА рд╣реИред
рддреЛ рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдореЗрдВ рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдореЗрдбреА -1 рд╣реИ рдФрд░ рдореЗрд░рд╛ рдЯрд╛рд░рдЧреЗрдЯ рдХреЙрдореЗрдбреА -1-рдПрдкреА рд╣реИ
рдЬрдм рдореИрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдкрдирд╛ рд▓рдХреНрд╖реНрдп reedy-1-api рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдЬрдм рдореИрдВ рдЗрд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрдХрд╛рдИ рдирд╣реАрдВ рдорд┐рд▓реАред
рдореИрдВ рдЕрдкрдиреЗ рдлрд╛рдпрд░рдмреЗрд╕рд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд▓рдХреНрд╖реНрдп рдХреЗ рддрд╣рдд рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ
"targets": {
"reedy-1": {
"hosting": {
"dev-api": [
"reedy-1-api"
]
}
}
}
рдЖрдкрдХреЗ .firebaserc
рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рдореБрдЭреЗ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИред
рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ (рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдЗрдирдХреА рдЬрд╛рдБрдЪ рдХрд░ рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЬрдм рдЕрдиреНрдп рд▓реЛрдЧ рдЗрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдареЛрдХрд░ рдЦрд╛рддреЗ рд╣реИрдВ):
firebase use
рд╕рд╛рде рдЙрдЪрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВfirebase use --add
рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)<site-name>.firebaseapp.com
рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)рдпрджрд┐ рдЖрдк рдбрд┐рдмрдЧ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ 404 рдХрд┐рд╕ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рд╣реИ? рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ POST https://firebasehosting.googleapis.com/v1beta1/sites/<site-name>/versions
рд╕реЗ рдЖрдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рддреИрдирд╛рддреА рдХрд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╕рд╛рдЗрдЯ рдирд╛рдо рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рдпрджрд┐ рдпрд╣ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИ рддреЛ рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред
рдареАрдХ рд╣реИ, рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдХрд┐ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рдерд╛ред
рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рд╡рд┐рд╕реНрдлреЛрдЯ рдФрд░ рдКрдкрд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ 404 рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдореВрд▓реНрдп рдпреЛрдЬрдирд╛ рдХреЗ рдХрд╛рд░рдг рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред
рдЙрдиреНрдирдпрди, рдмреВрдо рдХреЗ рдмрд╛рдж, рд╕рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ред
рд╡рд╛рд╣, рд░реБрдХреЛред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмреНрд▓реЗрдЬрд╝ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдирдИ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдирд╣реАрдВ рдмрдирд╛рдИ рд╣реИ рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╛ рдпрд╣ рдерд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдмреНрд▓реЗрдЬрд╝ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдерд╛, рджреВрд╕рд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдмрдирд╛рдИ, рдЕрдкрдиреА рдмрд┐рд▓рд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА?
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рднреА рдкрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдЕрдиреБрд░реЛрдз рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХ рд░рд╣рд╛ рдерд╛? рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рд╡рд╣ рддреНрд░реБрдЯрд┐ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдореИрдВ рдиреАрдЪреЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп 404 рдкрд╛рда рдХреЗ рдмрдЬрд╛рдп рдХреНрдпрд╛ рдХрд░реВрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рд╣рд╛рдВ, рдпрд╣ рд╕рд╣реА рд╣реИ, рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдлреНрд░реА рдЯрд┐рдпрд░ рдкрд░ рджреВрд╕рд░реА рд╕рд╛рдЗрдЯ рдмрдирд╛рдИ рд╣реИ, рддреЛ рдореБрдЭреЗ рддреИрдирд╛рддреА рдореЗрдВ рджрд┐рдХреНрдХрддреЗрдВ рдЖрдИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред рдЬрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдЧрд┐рддреБрдм рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рдЬрдм рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рддреЛ рдлрд╛рдпрд░рдмреЗрд╕ рд╡реЗрдм рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЕрдЬреАрдм рдЪреАрдЬреЗрдВ рд╣реЛрдиреЗ рд▓рдЧреАрдВред рджреВрд╕рд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡реЗрдмрд╕рд╛рдЗрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛, рддреЛ рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рдПрдЧреАред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлрд┐рд░ рддреИрдирд╛рддреА рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЗрд╕рдиреЗ рддреИрдирд╛рддреА рдкрд░ 404 рджрд┐рдЦрд╛рдпрд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╡рд╛рдкрд╕ рдЖрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдХрд░реВрдВрдЧрд╛, рдФрд░ рдЬрд╛рджреВ рдХреА рддрд░рд╣ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИ
@isevcik рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ? рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдерд╛ рдХрд┐ рд╣рдордиреЗ рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ (рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛)ред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдХрд╛рдо рдХрд┐рдпрд╛?
рдЖрдкрдХреЛ рд╢рд╛рдпрдж рд╕рдорд░реНрдерди рдореЗрдВ рдИрдореЗрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╣рдо рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХреЗрдВред рдЖрдкрдХреЛ рдЗрд╕ GitHub рдореБрджреНрджреЗ рдФрд░ рдореБрдЭреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╡реЗ рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реЗ рднреЗрдЬрдирд╛ рд╣реИред
@isevcik рдореБрдЭреЗ рдпрд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рдереА рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдиреЛрдЯ: рдЖрдкрдХреЛ рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░ рд▓рдХреНрд╖реНрдп рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдлрд╛рдпрд░рдмреЗрд╕ рд▓рдХреНрд╖реНрдп: рдкреНрд░рдХрд╛рд░ рд▓рдХреНрд╖реНрдп-рдирд╛рдо рд╕рдВрд╕рд╛рдзрди-рдирд╛рдо
рдирдорд╕реНрддреЗ, рдПрдХ рд╣реА рдореБрджреНрджрд╛:
[debug] [2019-08-09T17:34:19.322Z] TypeError: Cannot read property 'deploys' of undefined
at /Users/kevinliu/.npm-global/lib/node_modules/firebase-tools/lib/deploy/index.js:84:36
at processTicksAndRejections (internal/process/task_queues.js:85:5)
[error]
[error] Error: An unexpected error has occurred.
index.js
:
if (deployedHosting) {
_.each(context.hosting.deploys, function (deploy) {
logger.info(clc.bold("Hosting URL:"), utils.addSubdomain(api.hostingOrigin, deploy.site));
});
const versionNames = context.hosting.deploys.map((deploy) => deploy.version);
return { hosting: versionNames.length === 1 ? versionNames[0] : versionNames };
}
@ рдореИрдВ рднреА рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдЖрдкрдиреЗ рдХреНрдпрд╛ рдмрджрд▓рд╛?
[debug] [2019-08-16T18:44:01.159Z] TypeError: Cannot read property 'deploys' of undefined
at C:\Users\Kraken\AppData\Roaming\npm\node_modules\firebase-tools\lib\deploy\index.js:84:36
at process._tickCallback (internal/process/next_tick.js:68:7)
[error]
[error] Error: An unexpected error has occurred.
рдХреНрдпрд╛ @Memeriaj рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
@MaxInertia рд╣рд╛рдБ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдлреЙрд░реНрдореЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЕрдкрдиреА рдкреВрд░реА рдорд╢реАрди рдХреЛ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ :-)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рддрдм рдлреЗрдВрдХрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдореМрдЬреВрдж рдЯрд╛рд░рдЧреЗрдЯ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ред рдореИрдВ рджреЛ рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдпрд░рдмрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЗ рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реВрдБрдЧрд╛ред рдпрджрд┐ рдЖрдк рджреВрд╕рд░реА рд░рд╛рдп рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рд╛рдордЧреНрд░реА рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред
рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдмрд╛рдд, рдЬрдм 7.3.1 рдХреЗ рд╕рд╛рде рджреНрд╡рд┐рддреАрдпрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддреНрд░реБрдЯрд┐ firebase.json рдореЗрдВ рдереА, рдореИрдВрдиреЗ рдЧрд▓рдд "рд▓рдХреНрд╖реНрдп" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ
рдореИрдВ рдЗрд╕ рдЧрд╛рдЗрдб рдХреА рдорджрдж рд╕реЗ рдПрдХ рдирдпрд╛ рддреИрдирд╛рддреА рд▓рдХреНрд╖реНрдп рдмрдирд╛рдХрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:
https://firebase.google.com/docs/hosting/multisites?authuser=1#set_up_deploy_targets
рдореИрдВрдиреЗ рдПрдХ рдЖрджреЗрд╢ рдЬрд╛рд░реА рдХрд┐рдпрд╛:
firebase target:apply hosting blog myapp
рдФрд░ рдореЗрд░реЗ firebase.json
target
рдХреБрдВрдЬреА рдЬреЛрдбрд╝ рджреА
{
"hosting": {
"target": "myapp",
...
}
...
}
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрджрдо рд░рдЦрд╛ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдмреНрд░рд╛рдВрдб рдХреЗ рдирдП рдлрд╛рдпрд░рдмреЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЕрдкрдиреА рдкрд╣рд▓реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХреАред
рдореИрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рдерд╛ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдбреЙрдХреНрд╕ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рддреИрдирд╛рддреА рд▓рдХреНрд╖реНрдп рдмрдирд╛рдпрд╛: $ рдлрд╛рдпрд░рдмреЗрд╕ рд▓рдХреНрд╖реНрдп: рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд▓рдХреНрд╖реНрдп-рдирд╛рдо рд╕рдВрд╕рд╛рдзрди-рдирд╛рдо рд▓рд╛рдЧреВ рдХрд░реЗрдВ , рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдореБрдЦреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд╕рд╛рдзрди рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЙрд╕ .firebaserc рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдлрд╛рдпрд░рдмреЗрд╕ рддреИрдирд╛рддреА рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг:
"targets": {
"firebase-project-name": {
"hosting": {
"admin": [
"admin-project"
]
}
}
}
рдирдорд╕реНрддреЗ рдореИрдВ рднреА рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ (рдХрд╕реНрдЯрдо рдЬреЛрдбрд╝рд╛ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП)
рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд▓рдХреНрд╖реНрдп рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдИ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдЬреЛрдбрд╝рд╛ рдбреЛрдореЗрди рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ
рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди 3dprinter.froozen.in рд╣реИ (рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдЕрдВрджрд░ рдлрд╛рдпрд░рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛)
рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЛрдореЗрди рдХреЗ рдЕрдВрджрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ
рд╣рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рд╡рд┐рдлрд▓ рдХреЙрд▓ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдбрд┐рдмрдЧ рд▓реЙрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рджрд╛рди рдХрд░реЗрдВред
рд╕рдд, 4 рдЬрдирд╡рд░реА, 2020 рдХреЛ, 12:52 рдкреВрд░реНрд╡рд╛рд╣реНрди рдирд╛рдВрдзрд╛ рд╕реВрдЪрдирд╛рдПрдБ @ithub.com рдиреЗ рд▓рд┐рдЦрд╛:
рд╣рд╛рдп рднреА рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ (рдХрд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП)
рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдбреЛрдореЗрди)рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд▓рдХреНрд╖реНрдп рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдИ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред рдкрд░рдВрддреБ
рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдЬреЛрдбрд╝рд╛ рдбреЛрдореЗрди рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ
рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди 3dprinter.froozen.in рд╣реИ (рдЕрдВрджрд░ рдлрд╛рдпрд░рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ
рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ)
рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЛрдореЗрди рдХреЗ рдЕрдВрджрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рджреА рдЧрдИ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/firebase/firebase-tools/issues/1232?email_source=notifications&email_token=AAAAH7SNCPUEIMIWCDHK6CDQ4BE3JA5CNFSM4HJJKJJJ2YY3PNVWH8H8648648648&hl=hi&hl=hi
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAAAH7V26G3YF6Q7FYDP5QTQ4BE4JANCNFSM4HJWK5JQ
ред
рд╣рд╛рдп @ рдордВрдмреЗ ,
рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдореБрджреНрджрд╛ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛
рдпрджрд┐ рдХреЛрдИ рдФрд░ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдкреНрд░рд╢реНрди рд╣реЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ
"рддреНрд░реБрдЯрд┐: HTTP рддреНрд░реБрдЯрд┐: 404, рдЕрдиреБрд░реЛрдзрд┐рдд рдЗрдХрд╛рдИ рдирд╣реАрдВ рдорд┐рд▓реА" рдХреЗ рд╕рд╛рде рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ "рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
`` `
"рд▓рдХреНрд╖реНрдп": {
"рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо": {
"рдореЗрдЬрдмрд╛рдиреА": {
"рджреЗрд╡": [
"Dev.site.com"
],
"рдареЗрд╕": [
"Site.com"
]
}
}
}
istead of
```
"targets": {
"projectname": {
"hosting": {
"dev": [
"dev-site-name"
],
"prod": [
"ez-site-name"
]
}
}
}
рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдореЗрд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛:
targets.<PROJECT_ID>.hosting.<TARGET_NAME> = [ "<HOST_ID" ]
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП{
"projects": {
"default": "my-project-id"
},
"targets": {
"my-project-id": {
"hosting": {
"my-blog": [
"my-blog-host-id"
]
}
}
}
}
targets
рд╣рд┐рд╕реНрд╕рд╛ рдХрдорд╛рдВрдб firebase target:apply hosting my-blog my-blog-host-id
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
hosting
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП target: <TARGET_NAME>
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП{
"hosting": [{
"target": "my-blog",
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}]
}
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ hosting
рдПрдХ рд╕рд░рдгреА рдмрдирд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рдЖрдЗрдЯрдо рдореЗрдВ target
рдЬреЛрдбрд╝реЗрдВред
рдореИрдВ рдЖрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрд╕ рд╕реЗ рдорд╛рд░рд╛ рдЧрдпрд╛, Firebase.json hosting
рдХреЛ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд░реНрджрдирд╛рдХ рд╣реИ!
рдЕрдм рдореБрдЭреЗ рд╣рд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдЗрд╕рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░), рдХрд┐ рд╕рднреА рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реЗрдбрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИрдВ, рдЕрдЪрд╛рдирдХ 4x json рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореБрдЭреЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╡реИрд╕реЗ рднреА рдлрд╛рдпрд░рдмреЗрд╕ рдЬреЛрдВрд╕ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?
рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ "рд╡рд╛рддрд╛рд╡рд░рдг" рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ - рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ "рдордВрдЪрди", "рджреЗрд╡", рдЖрджрд┐ рд╕рд╛рдЗрдЯ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рд╛рдЗрдЯреЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ firebase use
рдХрдорд╛рдВрдб рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ / рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП firebase.json
рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреНрдпреЛрдВ рд╕рдорд╛рди рд╣реИрдВ?
рдареАрдХ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░рдХрдо рджреЗрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬреАрд╕реАрдкреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдирд╡реА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдПрдирд╡реАрд╡реА рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рди рдХрд┐ рд╕рд┐рд░реНрдл рдлрд╛рдпрд░рдмреЗрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ), рдореМрдЬреВрджрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд░рд▓ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдПрдХ рдпрд╛ рджреЛ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП GCP рдкрд░рд┐рдпреЛрдЬрдирд╛, рдПрдХ рдирдпрд╛ рдПрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдпред
рдЗрд╕ рдПрдЯреАрдПрдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдП рдЧрдП рдлрд╛рдпрд░рдмреЗрд╕ рд╕реЗред 5 рдмрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░рдирд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝рдирд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднреНрд░рдо рдХрд╣рд╛рдБ рд╕реЗ рдЖрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рддреЛ рдЙрдореНрдореАрдж рд╣реЛрдЧреА рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реА рдЧрд▓рддрдлрд╣рдореА рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ + рд▓рдХреНрд╖реНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдЖ рдЬрдмрдХрд┐ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рджрд┐рдЦрд╛рдИ рдЧрдИред
2020-06-22T17:20:39.837Z] TypeError: Cannot read property 'deploys' of undefined
рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреБрд░рд╛ рд╣реИ, рдФрд░ FWIW рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЕрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд bad
рдмрд╕ "рд╕рд░рдгреА рдлрд┐рдХреНрд╕" рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╕рд╛рдЗрдЯреЗрдВ рддреИрдирд╛рдд рд╣реИрдВ, рдореИрдВ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд▓рдХреНрд╖реНрдп рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣реА рд╕рд╛рдЗрдЯ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:
{
"hosting": [
{
"target": "web",
"public": "public",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
{
"target": "admin",
"public": "build",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
]
}
рд▓реЗрдХрд┐рди рдлрд┐рд░ "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ" рдиреЗ рдПрдХ рд░рд┐рдХреНрдд рдкреГрд╖реНрда рд▓реМрдЯрд╛рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЪрд╛рд▓ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмрд┐рдВрджреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ред
"public": "build",
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдКрдкрд░ рдФрд░ рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИред рдлрд┐рд░ рднреА рдореБрдЭреЗ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ рдХрд┐рд╕ рд▓рдХреНрд╖реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд╣реА рдмрддрд╛рдИ рдЧрдИ рд╣реЛрдВред рдХреНрдпрд╛ рдКрдкрд░ рдХреБрдЫ рдФрд░ рдХрд╡рд░ рдирд╣реАрдВ рд╣реИ?
рд░рди: firebase target:apply hosting second-project-id second-project-id
рдлрд┐рд░ .firebaserc рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рдЦрддрд╛ рд╣реИ
`{
"рд▓рдХреНрд╖реНрдп": {
"рдореБрдЦреНрдп-рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рдЖрдИрдбреА": {
"рдореЗрдЬрдмрд╛рдиреА": {
"рджреВрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛-рдЖрдИрдбреА": [
"рджреВрд╕рд░реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛-рдЖрдИрдбреА"
]
}
}
}
} `
рдлрд┐рд░ firebase.json рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ
"рд▓рдХреНрд╖реНрдп": "рджреВрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛-рдЖрдИрдбреА",
рд╣рдореНрдо, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ .firebaserc
рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
{
"projects": {
"default": "mainProjectId"
},
"targets": {
"mainProjectId": {
"hosting": {
"production": [
"mainProjectId"
],
"staging": [
"secondProjectId"
]
}
}
}
}
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдореЗрд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛:
targets.<PROJECT_ID>.hosting.<TARGET_NAME> = [ "<HOST_ID" ]
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПtargets
рд╣рд┐рд╕реНрд╕рд╛ рдХрдорд╛рдВрдбfirebase target:apply hosting my-blog my-blog-host-id
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИhosting
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдПtarget: <TARGET_NAME>
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПрдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛
hosting
рдПрдХ рд╕рд░рдгреА рдмрдирд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рдЖрдЗрдЯрдо рдореЗрдВtarget
рдЬреЛрдбрд╝реЗрдВред