firebase-toolsïŒ
[email protected]
ãã©ããããŒã ïŒ
ããã¯OS
MacOSã®ãããŒã10.15.3ã [email protected]
Firebaseã³ã³ãœãŒã«ã§2ã€ã®ãã¹ãã£ã³ã°ãµã€ããäœæããŸãã
å®è¡
'firebase targetïŒapply hosting dev firebase-hosting-id'
å®è¡
'firebase deploy --only hostingïŒdev '
å±éã«æå
[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 ïŒ
@Memeriajæè¿ããã«åãçµãã§ããã®ã§ãèŠãŠããã ããŸããïŒ
ç§ã¯ããã§äœãèµ·ãã£ãŠããã®ãç¥ã£ãŠãããããããªããšæããŸãã firebase.json
èšå®ãã¡ã€ã«ã«ã¯"target": "dev"
ããŠããŸããïŒ hosintg:dev
äžèŽããªããã¹ãŠã®æ§æããã£ã«ã¿ãŒã§é€å€ãã空ã®é
åãæ®ã£ããšæããŸãã 次ã«ããã®ç©ºã®ã¢ã¬ã€ã®ãã¹ãŠã®ãããã€æé ãå®è¡ããäºå®äžäœãããŸããã§ããã 次ã«ãæåŸã«ãã³ã³ãœãŒã«ãªã³ã¯ãšãæ°ãããããã€ãããã¹ãã£ã³ã°ãµã€ããžã®ãªã³ã¯ã衚瀺ããŸããå®éã«ã¯äœããããã€ããªãã£ãããããã®ãšã©ãŒããããã¢ãã衚瀺ãããŸãã
ãã®å Žåãäœããããã€ããŠããªãããšã説æããé©åãªãšã©ãŒãå¿ ãå¿ èŠã§ãã
ïŒåé¡ãšã¯é¢ä¿ãããŸããïŒéåžžãç°å¢ã¬ãã«ã®åãæ¿ãã¯ãåããããžã§ã¯ãå
ã®ç°ãªããã¹ãã£ã³ã°ãµã€ãã§ã¯ãªããFirebaseãããžã§ã¯ãã¬ãã«ã«åºã¥ããŠè¡ãå¿
èŠããããŸãïŒãã ããããã°çšã®ãµã€ããWebã¢ããªçšã®ãµã€ããåããããžã§ã¯ãã®ç°ãªããã¹ãã£ã³ã°ãµã€ãã®åãç°å¢ã«ããããã¥ã¡ã³ãã®ãµã€ãïŒããã¯äž»ã«ãFirebaseAuthãªã©ããããžã§ã¯ãå
ã«ã€ã³ã¹ã¿ã³ã¹ã1ã€ããæã£ãŠããªãããã§ããçæ³çã«ã¯firebase.json
ãã¡ã€ã«ã¯firebase use dev
ã firebase deploy
ãããªãã®ãã§ããããã«èšå®ããdevããã§ãã¯ããŠãåäœããŠããããšã確èªããŸãã 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"
]
}
}
ããªããèšåããŠããèšå®ã¯ãfirebasejsonãã¡ã€ã«ã§ã¯ãªãfirebasebashrcãã¡ã€ã«ã«ãããšæããŸãã
firebase deploy --only hosting:dev
ãæ©èœãããã«ã¯ãfirebase.jsonãã¡ã€ã«ã®ãã¹ãã£ã³ã°ã»ã¯ã·ã§ã³ã®äžã«"target": "dev"
ãå¿
èŠã§ãã --only
ãã©ã°ã¯ãã£ã«ã¿ãŒã®ããã«æ©èœãããã¹ãã£ã³ã°æ§æã«target
ãã£ãŒã«ãããªããšãCLIã¯äœããããã€ããŸããïŒããã¯æçšãªã¡ãã»ãŒãžã䌎ããšã©ãŒã§ããã¯ãã§ãããä»ã¯ç²ç®çã«åãå
¥ããŸãããïŒã
ç³ãèš³ãããŸããããjsonã®ã©ãã«ã¿ãŒã²ãããã£ãŒã«ããé 眮ããããæ確ã§ã¯ãããŸããããããjsonã®ã«ãŒãã«é 眮ãããïŒæ©èœããŸããã§ããïŒããã¹ãã£ã³ã°ã®ã«ãŒãã«é 眮ããå¿ èŠããããŸãïŒãããæ©èœããŸããã§ããïŒã
ãŸããç§ã®firebasercãã¡ã€ã«ã¯ç§ã®ã«ãŒããããžã§ã¯ããåç §ããŠããŸãããç§ã®2çªç®ã®ãã¹ãã£ã³ã°ãµã€ããžã®åç §ããªããããCLIããŒã«ãã©ãã«ãããã€ããããã©ã®ããã«ç解ã§ãããããããŸããã
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ãšã©ãŒãšã³ãã£ãã£ãèŠã€ãããŸããã
ã€ãŸããfirebaseã§ã®ç§ã®ãããžã§ã¯ãã¯reedy-1ã§ãããã¿ãŒã²ããã¯reedy-1-apiã§ãããšããŸãã
ãã¹ãã£ã³ã°ã«ã¿ãŒã²ãããreedy-1-apiãšããŠè¿œå ãããšãã¿ãŒã²ããããããã€ããããšãããšããšã³ãã£ãã£ãèŠã€ãããªããšæå¥ã衚瀺ãããŸãã
ç§ã®firebasercãã¡ã€ã«ã®ã¿ãŒã²ããã®äžã«è¡šç€ºãããŸã
"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ã§ãããäŸ¡æ Œãã©ã³ã®ããã«å±éã§ããªãã£ãããšã¯æããã§ã¯ãããŸããã
ã¢ããã°ã¬ãŒãåŸãããŒã ããã¹ãŠãæ©èœããŠããŸãã
ãååããã ãããããšãããããŸãããã®åé¡ã解決ãããŠããã ããŸãã
ãã£ãšãåŸ ã£ãŠã ãããã€ãæ©èœãããã«ã¯ãBlazeã«ã¢ããã°ã¬ãŒãããå¿ èŠããããŸãããïŒ æ°ãããã¹ãã£ã³ã°ãµã€ãããŸã äœæããŠãããããã®ããã«ã¢ããã°ã¬ãŒãããå¿ èŠããããããããã¯äœã§ããïŒ ãããšãã以åã«Blazeã«ã¢ããã°ã¬ãŒããã2ã€ç®ã®ãã¹ãã£ã³ã°ãµã€ããäœæãã課éãã©ã³ãããŠã³ã°ã¬ãŒãããŠãããå±éããããšããã®ã§ããããã
ãŸããã©ã®ãªã¯ãšã¹ãããã®ãšã©ãŒãã¹ããŒããŠããããç¥ã£ãŠããŸããïŒ ããªããæ£ããã®ã§ããã®ãšã©ãŒã¯ãŸã£ãã圹ã«ç«ã¡ãŸãããäžè¬çãª404ããã¹ãã®ä»£ããã«äœããã¹ããã«ã€ããŠã®ã¬ã€ãã³ã¹ãæäŸã§ããããã«ããšã©ãŒãã©ãããæ¥ãã®ãã远跡ããããšæããŸãã
ããã§ããå°ãçŽããããã§ãããç¡ææ ã§2çªç®ã®ãµã€ããäœæãããšç¢ºä¿¡ããŠããŸãããã®åŸãå±éã«åé¡ãããããããåå ã§ããå¯èœæ§ããããšèãããããã¢ããã°ã¬ãŒãããŸããã githubã§åé¡ãæèµ·ããå¿
èŠãããããšã«æ°ä»ãããšããããŠã³ã°ã¬ãŒãããŸããããããè¡ããšãFirebaseWebã³ã³ãœãŒã«ã§å¥åŠãªããšãèµ·ããå§ããŸããã 2çªç®ã®ãã¹ãã£ã³ã°Webãµã€ãã衚瀺ãããŸãããã¯ãªãã¯ãããšç©ºã®ç»é¢ã衚瀺ãããŸãã
ãµããŒããåããåŸããããã€ããããšããŸãããããããã€æã«404ã衚瀺ãããŸããã ã ããç§ã¯çã«ã¢ããã°ã¬ãŒãããŠæ»ããšæã£ãããããŠéæ³ã®ããã«ããã¯åããã
åãåé¡ãæ±ããŠãã
@isevcikæ¬åœã«ïŒ ç§ã¯ãã®åé¡ãä¿®æ£ããããšãããªã確信ããŠããŸããïŒãããŠç§ã¯æ¬åœã«ãããéããã¹ãã§ããïŒã ãããžã§ã¯ããã¢ããã°ã¬ãŒãããŠããããŠã³ã°ã¬ãŒããããšããåæ§ã®ããšãããŸãããïŒ
ãããžã§ã¯ãã®è©³çŽ°ãååŸããŠä¿®æ£ã§ããããã«ããµããŒãã«ã¡ãŒã«ãéä¿¡ããå¿ èŠããããŸãã ãã®GitHubã®åé¡ãšç§ã«èšåããŠã誰ã«éä¿¡ããããç¥ãããŠãã ããã
@isevcikãããšåããšã©ãŒãçºçããåãåé¡ãçºçãããšæããŸãããã.firebasercã®projectidã®ã¿ã€ããã¹ã§ããããšãå€æããŸããã
æåã§è¡ãã®ã§ã¯ãªãããã®ã³ãã³ãã䜿çšããŠãããã®ã¿ãŒã²ãããè¿œå ããŸããããæ©èœããŸããã
泚ïŒã¿ãŒã²ãããfirebase.jsonã«è¿œå ããå¿
èŠããããŸãã
firebase targetïŒapply type target-name resource-name
ããã«ã¡ã¯ãåãåé¡ïŒ
[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 };
}
@hpoitç§ããã®ãšã©ãŒãçºçããŠããŸãã 解決ããŸãããïŒ ãããããªããããªãã¯äœãå€ããŸãããïŒ
[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ã¯ãã解決ããŸããããã·ã³å šäœããã©ãŒãããããŠæ¶å»ããŸãã:-)
æ§æã§ãããã€ã¿ãŒã²ãããèŠã€ãããªãå Žåã«ããã®ãšã©ãŒãã¹ããŒãããã ãã ãšæããŸãã 2ã€ã®èšå®Firebaseãã¡ã€ã«ã§èšå®ã確èªããŸãã ã»ã«ã³ããªãããªã³ãå¿ èŠãªå Žåã¯ãããã«å 容ãæçš¿ããŠãã ããã
ããã§ãåãããšã§ãããfirebase7.3.1ã§ã»ã«ã³ããªãŠã§ããµã€ãããããã€ããããšããå Žå
å®éãfirebase.jsonã«ãšã©ãŒããããŸãããééã£ããã¿ãŒã²ããããæå®ããŸãã
ãã®ã¬ã€ãã䜿çšããŠæ°ãããããã€ã¿ãŒã²ãããäœæããããšã§ããã®åé¡ã解決ã§ããŸããã
https://firebase.google.com/docs/hosting/multisites?authuser=1#set_up_deploy_targets
1ã€ã®ã³ãã³ããçºè¡ããŸããïŒ
firebase target:apply hosting blog myapp
firebase.json
target
ããŒãè¿œå ããŸãã
{
"hosting": {
"target": "myapp",
...
}
...
}
ç·šéïŒæ°ããFirebaseãããžã§ã¯ãã§æåã®ãã¹ãã£ã³ã°ãèšå®ãããšãã«ããã®åé¡ã«èžã¿èŸŒã¿ãŸããã
ç§ãããã解決ããããšãã§ããŸããã ç§ã®åé¡ã¯ãããã¥ã¡ã³ãã§æŠèª¬ãããŠããã³ãã³ãã䜿çšããŠãããã€ã¿ãŒã²ãããäœæãããšãã«ã$ firebase targetïŒapply hosting target-name resource-nameã§ãã¡ã€ã³ãããžã§ã¯ãããªãœãŒã¹åãšããŠé 眮ããŠããããšã§ããã .firebasercãã¡ã€ã«ã§ãããå€æŽããfirebase deployã³ãã³ããå®è¡ãããšãæ©èœããŸããã 以äžã®äŸïŒ
"targets": {
"firebase-project-name": {
"hosting": {
"admin": [
"admin-project"
]
}
}
}
ããã«ã¡ã¯ãåãåé¡ã«å°ãç°ãªãæ¹æ³ã§çŽé¢ããŠããŸãïŒã«ã¹ã¿ã è¿œå ãã¡ã€ã³ã®å ŽåïŒ
ã¿ãŒã²ããåãç°ãªãè€æ°ã®ãã¹ãã£ã³ã°ã«ãããã€ã§ããŸãã ããããã«ã¹ã¿ã ã§è¿œå ãããã¡ã€ã³ã«ãããã€ããããšãããšã ãšã©ãŒãçºçããŸãïŒHTTPãšã©ãŒïŒ404ãèŠæ±ããããšã³ãã£ãã£ãèŠã€ãããŸããã§ããã
ç§ã®ã«ã¹ã¿ã ãã¡ã€ã³ã¯3dprinter.froozen.inã§ãïŒ[ã«ã¹ã¿ã ãã¡ã€ã³ã®è¿œå ]ãã¿ã³ãã¯ãªãã¯ããŠãããã©ã«ãã®ãã¹ãã£ã³ã°å
ã®Firebaseã«è¿œå ãããŸãïŒ
ã«ã¹ã¿ã ãã¡ã€ã³ã¯ããããžã§ã¯ãã®ããã©ã«ããã¡ã€ã³å
ã«è¿œå ãããŸãã
芪åã«ç§ãããã«é²ãã®ãæäŒã£ãŠãã ãã
å©ããããšãã§ããããã«æ£ç¢ºãªå€±æããåŒã³åºãã瀺ããããã°ãã°ãå¿
èŠã«ãªããŸã
åé¡ã蚺æããŸãã
åã2020幎1æ4æ¥ã«ã¯ã12ïŒ52 AMã®nandhaã®[email protected]ã¯æžããŸããïŒ
ããã«ã¡ã¯ãåãåé¡ã«å°ãç°ãªãæ¹æ³ã§çŽé¢ããŠããŸãïŒã«ã¹ã¿ã çšïŒ
è¿œå ããããã¡ã€ã³ïŒã¿ãŒã²ããåãç°ãªãè€æ°ã®ãã¹ãã£ã³ã°ã«ãããã€ã§ããŸãã ã ã
ã«ã¹ã¿ã è¿œå ãã¡ã€ã³ã«ãããã€ããããšãããšãã ãšã©ãŒãçºçããŸãïŒHTTPãšã©ãŒïŒ404ããªã¯ãšã¹ãããããšã³ãã£ãã£ãèŠã€ãããŸããã§ãããç§ã®ã«ã¹ã¿ã ãã¡ã€ã³ã¯3dprinter.froozen.inã§ãïŒå éšã®firebaseã«è¿œå ãããŠããŸã
[ã«ã¹ã¿ã ãã¡ã€ã³ã®è¿œå ]ãã¿ã³ãã¯ãªãã¯ããŠããã©ã«ãã®ãã¹ãã£ã³ã°ïŒ
ã«ã¹ã¿ã ãã¡ã€ã³ã¯ããããžã§ã¯ãã®ããã©ã«ããã¡ã€ã³å ã«è¿œå ãããŸãã
芪åã«ç§ãããã«é²ãã®ãæäŒã£ãŠãã ããâ
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/firebase/firebase-tools/issues/1232?email_source=notifications&email_token=AAAAH7SNCPUEIMIWCDHK6CDQ4BE4JA5CNFSM4HJWK5J2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5
ãŸãã¯è³Œèªã解é€ãã
https://github.com/notifications/unsubscribe-auth/AAAAH7V26G3YF6Q7FYDP5QTQ4BE4JANCNFSM4HJWK5JQ
ã
ããã«ã¡ã¯@mbleigh ã
åé¡ã解決ããŸãã
ãã以äžã¯ãšãªããªãå Žåã¯ããã®åé¡ã解決ã§ããŸã
ãäžæãªç¹ãããããŸãããã以äžã«ã³ã¡ã³ãããŠãã ãã
ããšã©ãŒïŒHTTPãšã©ãŒïŒ404ãèŠæ±ããããšã³ãã£ãã£ãèŠã€ãããŸããã§ãããã«é¢ããåé¡ã䜿çšããããšããŸãã
`` `
ãã¿ãŒã²ãããïŒ{
"ãããžã§ã¯ãå"ïŒ{
ããã¹ãã£ã³ã°ãïŒ{
"dev"ïŒ[
ã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
ãé
åã«å€æããã®ã¯æ¬åœã«èŠçã§ãïŒ
ããã§ããã¹ãŠã®ç°å¢ã«å¯ŸããŠå€ãã®ããããŒæ§æãæã€ãã¹ãŠã®ãšã³ããªãè€è£œããå¿ èŠããããŸãïŒã¿ãŒã²ãããé€ããŠåãã§ãã£ãŠãïŒãçªç¶ã管çããå¿ èŠããã4xjsonæ§æã«ãªããŸãã
ãšã«ãããfirebase jsonã®ããã©ã«ãã®ãã¹ãã£ã³ã°ãåå©çšããŸããïŒ
åããããžã§ã¯ãå
ã®è€æ°ã®ãµã€ãããç°å¢ããšããŠäœ¿çšããããšã¯æå³ãããŠããŸããããã¹ããŒãžã³ã°ãããéçºããªã©ã®ãµã€ããããå Žåããããã¯firebase use
ã³ãã³ãã圹ç«ã¡ãŸããåå¥ã«åãæ¿ã/ãããã€ããŸãã
ãããããªããããŠããããšã§ã¯ãªãå Žåããããžã§ã¯ãå
ã®åãµã€ãã®firebase.json
ãåäžã§ããçç±ãç解ããã®ãæäŒã£ãŠããããŸããïŒ
èŠçŽãããšãçŸåšãããŸããŸãªGCPãããžã§ã¯ãã«4ã€ã®ç°ãªãç°å¢ããããŸãããäžæçãªç°å¢ïŒFirebaseãã¹ãã£ã³ã°ã ãã§ãªãä»ã®éšåãå«ãïŒããããã€ããå¿ èŠããããæ¢åã®ç°å¢ãåå©çšããæ¹ãã¯ããã«ç°¡åã ãšæããŸããæ°ãããã®ãè¿œå ããã®ã§ã¯ãªãã1ã2ãæã®GCPãããžã§ã¯ãã
ãã®atmãå®çŸããå¯äžã®æ¹æ³ã¯ãfirebase.jsonãã¹ãã£ã³ã°æ§æã5åè€è£œããåæ§æã«äžæã®ã¿ãŒã²ãããè¿œå ããããšã§ãã
æ··ä¹±ã®åå ã¯ãããã©ã«ãã®ãã¹ãã£ã³ã°æ§æãããå Žåãã©ã®ã¿ãŒã²ãããŸãã¯ãããžã§ã¯ãã§ãæ©èœããããšãæåŸ ãããããšã ãšæããŸããããããžã§ã¯ã+ã¿ãŒã²ãããšæ¯èŒããŠãããŸããŸãªãããžã§ã¯ãã§ã©ã®ããã«äœ¿çšããããã«ã€ããŠã®ç§ã®èª€è§£ã ãšæããŸãã
æããã«ããã§ãæ©èœãããããšãã§ããŸããããã®ãšã©ãŒã衚瀺ãããçç±ãç解ããã®ã«å°ãæéãããããŸããã
2020-06-22T17:20:39.837Z] TypeError: Cannot read property 'deploys' of undefined
ãšã©ãŒã¡ãã»ãŒãžã¯ã©ã¡ãã®æ¹æ³ã§ãééããªãæªãã§ãããããŠFWIWã¯çŸåšéçºäžã®ããšãã§ã¡ã©ã«ãã¬ãã¥ãŒãã®ããã®ããè¯ã解決çãæã£ãŠããŸãð
ãã¢ã¬ã€ä¿®æ£ãã«è¿œå ããããã«ã2ã€ã®ãµã€ãããããã€ãããŠããŸããã¿ãŒã²ãããã¢ã¬ã€ã«å€æŽããåŸãæ£ãããµã€ããã¿ãŒã²ããã«ããããšãã§ããŸããã
{
"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"
}
]
}
]
}
ããããReactã䜿çšããŠããããããadminãã¯ç©ºçœã®ããŒãžãè¿ããŸãããããªãã¯ã¯ããããªãã¯ãã€ã³ãããã«ãããããšã§ããã
"public": "build",
ç§ã¯ãã®åé¡ã«ééããŠããŸãããããŠãã¹ãŠãäžèšãšããã¥ã¡ã³ãã«åŸã£ãŠæ£ããã§ãã ããã§ããšã©ãŒãçºçããŸãã ã©ã®ã¿ãŒã²ããã䜿çšããŠãããã¹ãŠã®ãã¡ã€ã«ãšèšå®ãæ£ãããšå ±åãããŠããŠãããããå°éããŠããªãããã§ãã äžèšã§ã«ããŒãããŠããªããã®ã¯ä»ã«ãããŸããïŒ
å®è¡ïŒ firebase target:apply hosting second-project-id second-project-id
次ã«ã.firebasercãã¡ã€ã«ãéãã次ã®ããã«ãªã£ãŠããããšã確èªããŸã
`{
ãã¿ãŒã²ãããïŒ{
"main-project-id"ïŒ{
ããã¹ãã£ã³ã°ãïŒ{
"second-project-id"ïŒ[
ãsecond-project-idã
]
}
}
}
} `
次ã«ãfirebase.jsonãã¡ã€ã«ãéãã次ã®ãã¡ã€ã«ãããããšã確èªããŸã
"ã¿ãŒã²ãã"ïŒ "second-project-id"ã
ããŒãããããæ©èœãããããã«äœãããã®ãæ£ç¢ºã«ã¯ããããŸããããçŸåšã¯ãã®.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
ãè¿œå ããããšã§ãã