최근 Google 에서 Cloud Function 에서 Node.js 8, 12, 14, 16 기반으로 만들어진 것들은 작동을 정지시킬 것이라고 합니다.
작업한 것들을 최대한 최신 버전으로 업데이트 후 출시하도록 안내하고 있습니다.
혹시나 Firebase 때문에 구름 IDE를 쓰신다면 차라리 Firebase CLI를 컴퓨터에 설치하고 작업하십시오.
이제는 더 이상 구버전 쓰면 안되는 지경까지 왔네요.
최근 Google 에서 Cloud Function 에서 Node.js 8, 12, 14, 16 기반으로 만들어진 것들은 작동을 정지시킬 것이라고 합니다.
작업한 것들을 최대한 최신 버전으로 업데이트 후 출시하도록 안내하고 있습니다.
혹시나 Firebase 때문에 구름 IDE를 쓰신다면 차라리 Firebase CLI를 컴퓨터에 설치하고 작업하십시오.
이제는 더 이상 구버전 쓰면 안되는 지경까지 왔네요.
보통 이 명령어로 많이 설치할텐데 이제 이거 안 됩니다.
npm install -g firebase-tools
왜냐면 NodeJS 버전이 16.x 로 고정되어 있는 현재 구름IDE 에서는 더 이상 이용할 수 없기 때문입니다. 그런데 이전까지는 동작했단 말이죠?
결론은, 최신 버전을 설치하면서 사용할 수 없는 문제가 발생하니, firebase-tools
를 구버전을 설치하고 그 다음에 최신 버전으로 다시 업데이트 하는 것이 좋습니다.
https://www.npmjs.com/package/firebase-tools?activeTab=versions
여기서 버전 목록을 모두 확인할 수 있는데, 추천하는 버전은 12.9.1 입니다.
npm install -g firebase-tools@12.9.1
그러면 이제 Firebase 모든 기능들이 정상 설치되는 걸 볼 수 있습니다.
아 근데, 여기서 바로 업데이트 하시면 절대 안 됩니다.
반드시 로그인을 마치고 기본 설정이 모두 끝난 뒤에 업데이트를 진행하시기 바랍니다.
(물론 잘 될지는 의문…)
로그인 하실 때는
firebase login --no-localhost
를 사용해서 터미널의 주소를 복사하여 링크를 복사한 뒤에 로그인 해야 됩니다.
당연 firebase init
도 해야되고, 각종 설정을 모두 다 마치시는 것도 잊지 마시구요.
저도 이 비슷한 일을 겪어서 상담사에 이야기해서 크레딧 사용 사유를 확인해 보니
간단히 설명하면 이렇습니다.
창을 닫은 건 창을 닫은 것이지 컨테이너를 끈 게 아니기 때문 이며,
컨테이너를 직접 꺼야지만 더 이상 크레딧이 소비되지 않는다고 합니다.
이전에는 항상 켜두기를 수동으로 켤 때만 이런 식으로 동작했는데,
지금은 모든 컨테이너가 항상 켜두기가 동작한다고 봐야 한다고 하더라구요.
저도 1년분까지 구매했던 걸 차액 환불 받고, 사전 등록에 대한 혜택도 받았지만,
잠깐 쓰고 닫은 컨테이너 하나에 나중에 다시 쓰려 하니 크레딧 싹 다 날라간 거 보고 깜짝 놀라긴 했습니다.
정책은 정책인데 컨테이너 끄는 방법은 너무 불편합니다.
진짜 잠깐 쓰고 deploy 하고 꺼야지 싶어서 창만 딸깍 하고 꺼버리면 절대 안되고,
무조건 컨테이너 전체 목록에서 컨테이너 껐는지 항상 확인하시고 꼭 끄시기 바랍니다.
아니 진짜 진심으로 컨테이너 바로 끄는 메뉴를 에디터 화면에서 바로 넣어줬으면 좋겠네요.
쓰다 보면 욕 나올 것 같네요.
Cloudflare Workers를 통해서 백엔드 개발을 해보려고 했는데, 통상적인 방법으로는 로그인이 잘 되지 않는 것 같습니다.
Firebase 의 경우 커멘드라인 만으로 로그인 할 수 있는 코드를 따로 제공해 주니까 어찌저찌 사용할 수 있었는데, Cloudflare Workers 의 wrangler 는 브라우저에서 뭔가 인증이 통과 되어야만 가능하게 되어있는 것 같아 보입니다.
wrangler login 하면 브라우저 창을 열지 못해서 오류가 나고,
그렇다고 제공되는 웹뷰 브라우저로도 로그인 하면 로그인 페이지가 열리지 않네요.
혹시나 해보신 분 있으면 공유 좀 해주세요.
@배명호-goorm 안타깝게도 Firebase 기본 샘플 함수를 해제한 게 전부였습니다. 기본 샘플에 오류가 있다고는 생각되지 않습니다.
스스로 다시 쓰는 것도 좀 그렇긴 하지만, 자체적으로 제공해주는 node.js 보다 homebrew를 설치하고 진행하니 기본 스크립트 Deploy에 성공했습니다.
아래와 같이 진행하는 게 좋을 듯 합니다.
export HOMEBREW_INSTALL_FROM_API=1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
설치가 다 되면,
echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /root/.profile
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /root/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
이후 brew 를 넣어서 정상적으로 작동하는지 확인 후, 아래의 코드로 Firebase CLI를 설치합니다.
brew install firebase-cli
Firebase CLI를 쓸 경우 항상 최신 버전을 쓰도록 권장하던데, 하나 준비하는 시간이 너무 오래 걸리는 것 같네요.
Firebase Function을 추가하고 진행했는데, 예상과 달리 Firebase를 처음 설치할 때도 오류가 생겨서 왜이러나 싶더니,
이젠 기본 함수 마저 제대로 deploy를 할 수 없습니다.
Function 자체를 쓰고 하는데 무리가 없고,
eslint 가 있으면 방해되는 것 같아서 Firebase에서 제공하는 lint를 끄고 설치하니...
이젠 다른 오류가 나타나면서 더욱 더 혼란스럽게 하는 것 같습니다.
관련 포럼도 도저히 알아볼 곳이 없어 여기에 글을 올립니다. 한번 확인 부탁 드립니다.
[debug] [2023-01-11T05:39:25.361Z] ----------------------------------------------------------------------
[debug] [2023-01-11T05:39:25.365Z] Command: /usr/bin/node /usr/bin/firebase deploy
[debug] [2023-01-11T05:39:25.366Z] CLI Version: 11.20.0
[debug] [2023-01-11T05:39:25.366Z] Platform: linux
[debug] [2023-01-11T05:39:25.367Z] Node Version: v16.19.0
[debug] [2023-01-11T05:39:25.367Z] Time: Wed Jan 11 2023 05:39:25 GMT+0000 (협정 세계시)
[debug] [2023-01-11T05:39:25.368Z] ----------------------------------------------------------------------
[debug]
[debug] [2023-01-11T05:39:25.859Z] > 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"]
[debug] [2023-01-11T05:39:25.860Z] > authorizing via signed-in user (example@gmail.com)
[debug] [2023-01-11T05:39:25.861Z] [iam] checking project xxxxxxxxxxxxxxxxxxxxx for permissions ["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]
[debug] [2023-01-11T05:39:25.866Z] >>> [apiv2][query] POST https://cloudresourcemanager.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx:testIamPermissions [none]
[debug] [2023-01-11T05:39:25.866Z] >>> [apiv2][(partial)header] POST https://cloudresourcemanager.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx:testIamPermissions x-goog-quota-user=projects/xxxxxxxxxxxxxxxxxxxxx
[debug] [2023-01-11T05:39:25.866Z] >>> [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx:testIamPermissions {"permissions":["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]}
[debug] [2023-01-11T05:39:26.975Z] <<< [apiv2][status] POST https://cloudresourcemanager.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx:testIamPermissions 200
[debug] [2023-01-11T05:39:26.976Z] <<< [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx:testIamPermissions {"permissions":["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]}
[debug] [2023-01-11T05:39:26.977Z] >>> [apiv2][query] POST https://iam.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/serviceAccounts/xxxxxxxxxxxxxxxxxxxxx@appspot.gserviceaccount.com:testIamPermissions [none]
[debug] [2023-01-11T05:39:26.978Z] >>> [apiv2][body] POST https://iam.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/serviceAccounts/xxxxxxxxxxxxxxxxxxxxx@appspot.gserviceaccount.com:testIamPermissions {"permissions":["iam.serviceAccounts.actAs"]}
[debug] [2023-01-11T05:39:27.360Z] <<< [apiv2][status] POST https://iam.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/serviceAccounts/xxxxxxxxxxxxxxxxxxxxx@appspot.gserviceaccount.com:testIamPermissions 200
[debug] [2023-01-11T05:39:27.360Z] <<< [apiv2][body] POST https://iam.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/serviceAccounts/xxxxxxxxxxxxxxxxxxxxx@appspot.gserviceaccount.com:testIamPermissions {"permissions":["iam.serviceAccounts.actAs"]}
[info]
[info] === Deploying to 'xxxxxxxxxxxxxxxxxxxxx'...
[info]
[info] i deploying functions
[debug] [2023-01-11T05:39:27.366Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx [none]
[debug] [2023-01-11T05:39:27.770Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx 200
[debug] [2023-01-11T05:39:27.771Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx {"projectId":"xxxxxxxxxxxxxxxxxxxxx","projectNumber":"529367310438","displayName":"SHAKS GAMEPAD UTILITY","name":"projects/xxxxxxxxxxxxxxxxxxxxx","resources":{"hostingSite":"xxxxxxxxxxxxxxxxxxxxx","realtimeDatabaseInstance":"xxxxxxxxxxxxxxxxxxxxx","storageBucket":"xxxxxxxxxxxxxxxxxxxxx.appspot.com","locationId":"europe-west"},"state":"ACTIVE","etag":"1111111111-1111-1111-1111-111111111111"}
[info] i functions: preparing codebase default for deployment
[info] i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
[info] i functions: ensuring required API cloudbuild.googleapis.com is enabled...
[info] i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
[debug] [2023-01-11T05:39:27.775Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/cloudfunctions.googleapis.com [none]
[debug] [2023-01-11T05:39:27.775Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/cloudfunctions.googleapis.com x-goog-quota-user=projects/xxxxxxxxxxxxxxxxxxxxx
[debug] [2023-01-11T05:39:27.777Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/runtimeconfig.googleapis.com [none]
[debug] [2023-01-11T05:39:27.778Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/runtimeconfig.googleapis.com x-goog-quota-user=projects/xxxxxxxxxxxxxxxxxxxxx
[debug] [2023-01-11T05:39:27.779Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/cloudbuild.googleapis.com [none]
[debug] [2023-01-11T05:39:27.779Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/cloudbuild.googleapis.com x-goog-quota-user=projects/xxxxxxxxxxxxxxxxxxxxx
[debug] [2023-01-11T05:39:27.781Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/artifactregistry.googleapis.com [none]
[debug] [2023-01-11T05:39:27.781Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/artifactregistry.googleapis.com x-goog-quota-user=projects/xxxxxxxxxxxxxxxxxxxxx
[debug] [2023-01-11T05:39:28.894Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/cloudfunctions.googleapis.com 200
[debug] [2023-01-11T05:39:28.894Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/cloudfunctions.googleapis.com [omitted]
[info] ✔ functions: required API cloudfunctions.googleapis.com is enabled
[debug] [2023-01-11T05:39:28.904Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/artifactregistry.googleapis.com 200
[debug] [2023-01-11T05:39:28.904Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/artifactregistry.googleapis.com [omitted]
[info] ✔ artifactregistry: required API artifactregistry.googleapis.com is enabled
[debug] [2023-01-11T05:39:28.908Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/runtimeconfig.googleapis.com 200
[debug] [2023-01-11T05:39:28.908Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/runtimeconfig.googleapis.com [omitted]
[debug] [2023-01-11T05:39:28.911Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/cloudbuild.googleapis.com 200
[debug] [2023-01-11T05:39:28.912Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/services/cloudbuild.googleapis.com [omitted]
[info] ✔ functions: required API cloudbuild.googleapis.com is enabled
[debug] [2023-01-11T05:39:28.913Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/adminSdkConfig [none]
[debug] [2023-01-11T05:39:29.364Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/adminSdkConfig 200
[debug] [2023-01-11T05:39:29.364Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/adminSdkConfig {"projectId":"xxxxxxxxxxxxxxxxxxxxx","databaseURL":"https://xxxxxxxxxxxxxxxxxxxxx.firebaseio.com","storageBucket":"xxxxxxxxxxxxxxxxxxxxx.appspot.com","locationId":"europe-west"}
[debug] [2023-01-11T05:39:29.365Z] >>> [apiv2][query] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs [none]
[debug] [2023-01-11T05:39:29.844Z] <<< [apiv2][status] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs 200
[debug] [2023-01-11T05:39:29.844Z] <<< [apiv2][body] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs {"configs":[{"name":"projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube"}]}
[debug] [2023-01-11T05:39:29.845Z] >>> [apiv2][query] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube/variables [none]
[debug] [2023-01-11T05:39:30.254Z] <<< [apiv2][status] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube/variables 200
[debug] [2023-01-11T05:39:30.255Z] <<< [apiv2][body] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube/variables {"variables":[{"name":"projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube/variables/key","updateTime":"2023-01-10T17:23:23.675799728Z"}]}
[debug] [2023-01-11T05:39:30.260Z] >>> [apiv2][query] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube/variables/key [none]
[debug] [2023-01-11T05:39:30.761Z] <<< [apiv2][status] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube/variables/key 200
[debug] [2023-01-11T05:39:30.762Z] <<< [apiv2][body] GET https://runtimeconfig.googleapis.com/v1beta1/projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube/variables/key {"name":"projects/xxxxxxxxxxxxxxxxxxxxx/configs/youtube/variables/key","updateTime":"2023-01-10T17:23:23.675799728Z","text":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}
[debug] [2023-01-11T05:39:30.764Z] Validating nodejs source
[debug] [2023-01-11T05:39:33.687Z] > [functions] package.json contents: {
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "16"
},
"main": "index.js",
"dependencies": {
"firebase-admin": "^10.0.2",
"firebase-functions": "^4.1.1"
},
"devDependencies": {
"firebase-functions-test": "^0.2.0"
},
"private": true
}
[debug] [2023-01-11T05:39:33.688Z] Building nodejs source
[debug] [2023-01-11T05:39:33.689Z] Could not find functions.yaml. Must use http discovery
[debug] [2023-01-11T05:39:35.170Z] Serving at port 9005
[debug] [2023-01-11T05:39:36.284Z] Got response from /__/functions.yaml {"endpoints":{"helloWorld":{"platform":"gcfv1","availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"serviceAccountEmail":null,"vpc":null,"httpsTrigger":{},"entryPoint":"helloWorld"}},"specVersion":"v1alpha1","requiredAPIs":[]}
[debug] [2023-01-11T05:39:36.470Z] shutdown requested via /__/quitquitquit
[info] i functions: preparing functions directory for uploading...
[info] i functions: packaged /workspace/FirebaseCLI/functions (54.74 KB) for uploading
[debug] [2023-01-11T05:39:36.791Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/locations/-/functions [none]
[debug] [2023-01-11T05:39:37.561Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/locations/-/functions 200
[debug] [2023-01-11T05:39:37.561Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/projects/xxxxxxxxxxxxxxxxxxxxx/locations/-/functions {}
[debug] [2023-01-11T05:39:37.562Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v2/projects/xxxxxxxxxxxxxxxxxxxxx/locations/-/functions filter=environment%3D%22GEN_2%22
[debug] [2023-01-11T05:39:39.061Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v2/projects/xxxxxxxxxxxxxxxxxxxxx/locations/-/functions 200
[debug] [2023-01-11T05:39:39.061Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v2/projects/xxxxxxxxxxxxxxxxxxxxx/locations/-/functions {"functions":[{"name":"projects/xxxxxxxxxxxxxxxxxxxxx/locations/europe-west4/functions/date","buildConfig":{"build":"projects/000000000000/locations/europe-west4/builds/dddddddd-dddd-dddd-dddd-dddddddddddd","runtime":"nodejs16","entryPoint":"date","source":{"storageSource":{"bucket":"gcf-v2-sources-529367310438-europe-west4","object":"date/function-source.zip"}},"sourceProvenance":{"resolvedStorageSource":{"bucket":"gcf-v2-sources-529367310438-europe-west4","object":"date/function-source.zip","generation":"1673405131430993"}}},"state":"FAILED","updateTime":"2023-01-11T02:46:32.035240385Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"3a8fd04cd9faebcb56155db3fb569c13d4252fad"},"stateMessages":[{"severity":"ERROR","type":"CloudRunServiceNotFound","message":"Cloud Run service projects/xxxxxxxxxxxxxxxxxxxxx/locations/europe-west4/services/date for the function was not found. The function will not work correctly. Please redeploy."}],"environment":"GEN_2"},{"name":"projects/xxxxxxxxxxxxxxxxxxxxx/locations/us-east1/functions/date","buildConfig":{"build":"projects/529367310438/locations/us-east1/builds/624fc2c9-18a4-4bae-bef6-de5526e40a21","runtime":"nodejs16","entryPoint":"date","source":{"storageSource":{"bucket":"gcf-v2-sources-529367310438-us-east1","object":"date/function-source.zip"}},"sourceProvenance":{"resolvedStorageSource":{"bucket":"gcf-v2-sources-529367310438-us-east1","object":"date/function-source.zip","generation":"1673405130237486"}}},"state":"FAILED","updateTime":"2023-01-11T02:46:33.662216335Z","labels":{"firebase-functions-hash":"3a8fd04cd9faebcb56155db3fb569c13d4252fad","deployment-tool":"cli-firebase"},"stateMessages":[{"severity":"ERROR","type":"CloudRunServiceNotFound","message":"Cloud Run service projects/xxxxxxxxxxxxxxxxxxxxx/locations/us-east1/services/date for the function was not found. The function will not work correctly. Please redeploy."}],"environment":"GEN_2"},{"name":"projects/xxxxxxxxxxxxxxxxxxxxx/locations/us-west1/functions/date","buildConfig":{"build":"projects/529367310438/locations/us-west1/builds/e94c54cc-5534-4c74-ad24-08ea23ade1db","runtime":"nodejs16","entryPoint":"date","source":{"storageSource":{"bucket":"gcf-v2-sources-529367310438-us-west1","object":"date/function-source.zip"}},"sourceProvenance":{"resolvedStorageSource":{"bucket":"gcf-v2-sources-529367310438-us-west1","object":"date/function-source.zip","generation":"1673405129090729"}}},"state":"FAILED","updateTime":"2023-01-11T02:46:12.505826381Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"3a8fd04cd9faebcb56155db3fb569c13d4252fad"},"stateMessages":[{"severity":"ERROR","type":"CloudRunServiceNotFound","message":"Cloud Run service projects/xxxxxxxxxxxxxxxxxxxxx/locations/us-west1/services/date for the function was not found. The function will not work correctly. Please redeploy."}],"environment":"GEN_2"}]}
[debug] [2023-01-11T05:39:39.241Z] TypeError: Cannot read properties of undefined (reading 'service')
at /usr/lib/node_modules/firebase-tools/lib/deploy/functions/backend.js:198:113
at Array.map (<anonymous>)
at loadExistingBackend (/usr/lib/node_modules/firebase-tools/lib/deploy/functions/backend.js:198:69)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async Object.existingBackend (/usr/lib/node_modules/firebase-tools/lib/deploy/functions/backend.js:174:9)
at async prepare (/usr/lib/node_modules/firebase-tools/lib/deploy/functions/prepare.js:138:115)
at async chain (/usr/lib/node_modules/firebase-tools/lib/deploy/index.js:35:9)
at async deploy (/usr/lib/node_modules/firebase-tools/lib/deploy/index.js:79:5)
[error]
[error] Error: An unexpected error has occurred.
이게 구름 IDE 쪽에서의 문제인지 아닌지 모르겠습니다.