source

오류: 기능이 제대로 배포되지 않았습니다.

ittop 2023. 6. 26. 23:09
반응형

오류: 기능이 제대로 배포되지 않았습니다.

함수 배포에 오류가 발생했습니다.데이터베이스와 같은 다른 기능을 계속 배포하려면 다음을 실행합니다.

firebase deploy --except functions

오류:

기능이 제대로 배포되지 않았습니다.

를 사용하여 .--debug 예:firebase --debug deploy.

제 경우 기능은 다음과 같습니다.

exports.test = functions.firestore.document('chats').onCreate((snap, context) => {
   ...
});

디버그 로그에 다음 오류 메시지가 포함되어 있습니다.

fieldViolations=[field=event_trigger, 설명=정규식 [^/]+/[^/]+(/[^/]+/[^/]+/[^/]+*]와 일치하는 예상 값 채팅

그리고 그때 깨달았어요.chats문서가 아니라 모음입니다.저는 컬렉션의 경로로 경로를 변경했고 모든 것이 잘 작동했습니다.

편집:

더 많은 로그를 보려면 다음을 시도할 수도 있습니다.

firebase functions:log

또는

firebase functions:log --only <FUNCTION_NAME>

설명서에 대한 링크입니다.

저도 Firestore와 같은 문제가 있었는데, 제 문제는 문서에 대한 경로가 좋지 않다는 것이었습니다.Firebase Realtime Database 경로와 같이 문서 경로의 시작과 끝에 슬래시가 있습니다.누군가에게 도움이 되길 바랍니다.

사용 중인 IDE를 닫고 다시 열기만 하면 됩니다.그런 다음 노드에서 기능을 다시 배포합니다.이렇게 하면 문제가 해결됩니다.

저도 이 오류가 있었는데, 패키지에 종속성이 없다는 문제가 있었습니다.json 파일.

firebase --debug deploy사용자 코드에 오류가 반환되었습니다. firebase functions:log소포가 포함되지 않았다는 구체적인 내용을 제시했습니다.

삭제했습니다yarn.lock그러면 오류가 사라집니다.yarn.함께 는 안 합니다. package-lock.json' yarn.lock은 같은 이름입니다.

함수 폴더 내의 json 모듈 종속성을 확인합니다.거기에 특정한 json 패키지가 있습니다.프로젝트에 포함된 모듈 중 일부(json)가 없을 경우 오류가 언급될 수 있습니다.설치하기만 하면 실행:

npm install <module> --save

또는

yarn add <module> --save

배포를 다시 실행합니다.

firebase deploy --only functions

이 경우 "Error:" 오류로 인해 Firebase 배포가 실패했습니다.기능이 제대로 배포되지 않았습니다."라고 말하며 더 이상의 설명은 없습니다.저는 제가 만지지 않은 기능들도 배치할 수 없다는 것을 알아차렸습니다.그래서 종속성을 확인해보니 "package.json"에 라이브러리가 없습니다.

그래서 다음 명령을 실행합니다.

cd functions && rm -rf node_modules && rm package-lock.json && npm install && npm install [specific Librairy not in package.json] && firebase deploy

그 후 배포가 성공하고 패키지에 종속성이 누락되었습니다.제이손

최근 Firebase에서는 Blaze-Pay가 있는 경우에만 기능을 사용할 수 있습니다.따라서 기능도 배포할 수 없으며 추가 설명 없이 동일한 오류 메시지가 표시됩니다.

나는 대략.

"청구 계정을 사용할 수 없기 때문에 기능 배포에 실패했습니다."

그래서 미결제 상태였는데, 결제 후 예상대로 작동했습니다.

동일한 일반 오류 메시지가 표시되고 실행되었습니다(이 질문에 언급된 대로).

firebase --debug deploy --only functions:[functionName]

이로 인해 실제 문제가 드러났습니다(내 프로젝트에는 기본 GCP 리소스 위치가 없습니다. 여기에 설명된 문제 해결: Firebase Project Initialization Error: 클라우드 리소스 위치가 이 프로젝트에 대해 설정되지 않았습니다).

GCP 리소스 위치를 설정하면 문제없이 기능이 배포됩니다!

enter image description here

저의 경우, 오랜 시간 검색한 결과 디버깅을 위해 프로젝트에 대한 청구를 비활성화했기 때문이라는 것을 알게 되었습니다.

이제 사용하도록 설정한 후에는 정상적으로 작동했습니다.Google cloud console.

파이어베이스가 문제를 제안하는 데 유용한 오류 메시지를 표시하지 못하는 것은 정말 슬픈 일입니다.저는 많은 시도 끝에 이것을 발견했습니다.

비슷한 문제에 직면했지만 Typescript를 사용하고 있었습니다.

기본적으로 지원되지 않는 Javascript 버전(ES2020)을 대상으로 했습니다.변경했습니다.tsconfig.json그리고 그것은 정상적으로 배치되었습니다.

"lib": [
  "es2019",
  "es2020.bigint",
  "es2020.string",
  "es2020.symbol.wellknown"
],
"module": "commonjs",
"target": "es2019"

위 배포 오류가 발생한 후 index.js 파일을 편집하여 함수 이름을 "helloWorld"에서 "heyWorld"로 변경했더니 갑자기 firebase deploy 명령어가 작동했습니다.

파이어베이스와 함께 ssr 함수를 각도가 있는 범용으로 배포하려는 사람이 있다면, 이는 파이어베이스가 함수에 포함되어 있지 않기 때문입니다.

1.)cd functions

2.)npm i firebase@latest

3.)npm run deploy

4.)cd ..

5를 때.ng deploy제대로 작동해야 합니다...여기서 핵심은 방화벽 기반을 추가하고 다음과 같이 구축하는 것입니다.npm run deploy첫번째...

Functions did not deploy properly.

이것을 추가해 보세요.

"nodejs12": "nodejs12"

너의 화력 기지에서, json.

예:

"functions": {
    "source": ".",
    "ignore": [
      ".firebase/**",
      "**/node_modules/**",
      "**/public/**",
      ".firebaserc",
      "firebase.json",
      "postcss.config.js",
      "README.md",
      "tailwind.config.js"
    ],
    "runtime": "nodejs12"
  }

동일한 오류로 인해 패키지를 업데이트하여 해결했습니다.제이손

출처:

"engines": {
    "node": "12"
 },

대상:

"engines": {
    "node": "14"
 },

$는 인병의 원인이 됩니다.Error: Functions did not deploy properly.

이전:

`export const newMessage = functions.firestore.document('chats/${chatId}/messages/${messageId}').onCreate(handleNewMessage())`

이후:

`export const newMessage = functions.firestore.document('chats/{chatId}/messages/{messageId}').onCreate(handleNewMessage())`

저의 경우, 파이어스토어의 위치가 정확하게 설정되지 않았습니다.기능 설명서에서 다음을 참조하십시오.

은 기적으로, 기은에실다에서 됩니다.us-central1지역.

저의 경우, 파이어스토어는 다른 위치에 설치되었습니다.의 " 설정"에서 찾을 수 .Default GCP resource location.

이 문제를 해결하려면 다음과 같이 변경하면 됩니다.

// Before
functions.firestore.document("...").onCreate(...)

// After
functions.region("asia-east2").firestore.document("...").onCreate(...)

다음 단계를 수행합니다.

  1. 디버그가 활성화된 상태로 배포: firebase --debug deploy 콘솔에 오류가 표시됩니다.대부분의 경우 아래 라인과 유사합니다.

npm install파일 이름은 \ERR! \ ERR! \ ERR\nnpm ERR! \nnpm ERR! \nnpm ERR!올바르지 않습니다. 잠파일의금 body-parser@1.19.0이 body-parser@~1.0.1\npm ERRR!

  1. 오류가 위 1)의 "lock file's body-parse"와 유사한 경우: 프로젝트의 views 디렉토리로 이동하여 패키지의 종속성 섹션을 편집합니다.아래와 같은 json 파일:본문 파서 버전을 위의 1)에 인쇄된 오류에 표시된 최신 버전으로 변경합니다.나의 경우 바디 파서@~1.0.1에서 바디 파서@~1.19.0까지였습니다.
  2. 실행: npm 설치
  3. 재구현: Firebase 배치

이게 통할 겁니다.

다시 배포한 후 호스팅 URL에서 403 오류가 발생하면 CLI 버전이 최신 버전이 아닐 수 있습니다.

  1. Google 클라우드 계정에 로그인하고 Google 클라우드 콘솔로 이동합니다.
  2. 클라우드 기능 삭제
  3. 다음을 사용하여 Firebase CLI 업데이트: npm install -g firebase-tools
  4. 재배치: 소방 기지 배치

배포 시 firebase-functions 및 firebase-admin 모듈을 찾을 수 없었습니다. 이 모듈은 종속성이 아닌 devDependencies로 작성했기 때문입니다.하지만 그 후엔...저는 여전히 문제가 있었습니다.하지만 이것으로 해결되었습니다. https://github.com/nuxt/nuxt.js/issues/2714#issuecomment-423048343 .

노드 8은 함수의 폴더 패키지에서 엔진 개체로 인식됩니다.json 및 다음 구성에 babel 스니펫을 추가합니다.

저도 Firebase 프로젝트 배포와 같은 문제가 있었습니다.그런 다음 오류를 파악하고 일부 모듈 경로가 문제의 원인임을 확인합니다.그런 다음 저는 그 모듈의 경로를 변경했습니다.

이러한 기능을 다시 배포하려면 firebase deploy --only functions:api, functions:createScream을 실행합니다.

데이터베이스와 같은 다른 기능을 계속 배포하려면 firebase deploy --except functions를 실행합니다.

오류: 기능이 제대로 배포되지 않았습니다.

모듈을 찾을 수 없다는 오류가 표시됩니다.

패키지에 필요한 모든 모듈을 나열했습니까?json 의존성?
상세 스택 추적:오류: 모듈을 찾을 수 없습니다(.../key/비밀 키.json).'

그런 다음 로그인 자격 증명에 필요한 비밀 키의 경로를 변경하여 다른 폴더에 저장했습니다.그럼 실행firebase deploy그것은 나에게 효과가 있습니다.

저도 같은 문제가 있었습니다.문제는 제가 index.js 파일과 패키지를 가지고 있다는 사실에서 비롯되었습니다.루트 폴더에 있는 json 파일과 firebase functions init 명령을 실행한 후 index.js 및 패키지도 포함됩니다.json을 functions 폴더에 저장합니다.종속성은 패키지에만 나열됩니다.json 파일이 functions 폴더가 아닌 루트 폴더에 있습니다.저는 패키지에 종속성을 복사했습니다.함수 폴더에 있는 json 파일과 모든 것이 매력적으로 작동했습니다.

삭제buildfunctions 폴더 작업 완료

firebase functions:log

이를 통해 제 경우의 문제를 찾을 수 있었습니다. 패키지 중 하나가 패키지의 종속성에 나열되지 않았습니다.제이손

이것은 오늘 저에게 효과가 있었습니다.기능을 삭제하고 다시 배포합니다.

저도 같은 일이 벌어졌지만, 유감스럽게도 저는 아무런 오류가 없었습니다.--debug.

그런 다음 방화벽 콘솔에서 배포된 모든 기능을 삭제하고

cd functions
rm -rf node_modules
npm install
firebase deploy --only functions

마법처럼 작동했습니다.

저도 같은 오류가 발생했습니다.

에뮬레이터에서 기능이 작동하지만 배포할 수 없습니다.디버그를 사용하여 함수를 배포했을 때 더 이상의 구체적인 정보를 얻지 못했습니다.

그러다가 IDE가 실수로 svelte 프로젝트가 있는 부모 폴더에서 lib(사용하지도 않는)를 가져온 것을 알게 되었습니다.

그 수입품을 제거한 것이 분명히 제 실수를 고쳤습니다.

최근 추가된 타사 라이브러리(package/package-lock.json에서도 삭제했습니다.그리고 함수의 이름이 중복되지 않도록 확인하였습니다.이것은 저에게 효과가 있었습니다.

SSR을 사용하는 경우 노드 버전을 선언해야 합니다. 제 경우 노드 버전은 14이고 Firebase는 10.0으로 배포되었습니다. 이 구성을 angular.json에 설정했습니다.

        "functionsNodeVersion": 14
        "serve-ssr": {
      "builder": "@nguniversal/builders:ssr-dev-server",
      "options": {
        "browserTarget": "Rioja-web:build",
        "serverTarget": "Rioja-web:server"
      },
      "configurations": {
        "production": {
          "browserTarget": "Rioja-web:build:production",
          "serverTarget": "Rioja-web:server:production"
        }
      }
    },
    "prerender": {
      "builder": "@nguniversal/builders:prerender",
      "options": {
        "browserTarget": "Rioja-web:build:production",
        "serverTarget": "Rioja-web:server:production",
        "routes": [
          "/"
        ]
      },
      "configurations": {
        "production": {}
      }
    },
    "deploy": {
      "builder": "@angular/fire:deploy",
      "options": {
        "ssr": true,
        "functionsNodeVersion": 14
      }
    }
  }

저도 같은 문제가 있었습니다.패키지에서 노드 엔진을 16으로 업데이트합니다.json은 그 문제를 해결했습니다.

나의 nodejs 로컬 버전은 16.

{
...
"engines": {
    "node": "16"
 },
 "main": "lib/index.js",
 "dependencies": { ... }

}

언급URL : https://stackoverflow.com/questions/44067372/error-functions-did-not-deploy-properly

반응형