☠️

Cloud FunctionsがDeployできない?

2023/01/27に公開

コマンドが実行できない!

Cloud Functionsの関数をFirebaseに、Deployしようとしたのですが、以下のエラーにハマりました😇

解決方法

Githubのissueを見てみる。
TypeScriptを使用したときに、発生するエラーのようですね。
package.jsonの内容を変更しましょう。

https://github.com/firebase/firebase-tools/issues/1905

変更前

変更後

他には、npmのVersionが原因のこともあるらしいので、Versionのエラーが発生したときは、package.jsonがあるfunctionsディレクトリ内で、npm installを実行します。

npm install

ソースコード

package.json
{
  "name": "functions",
  "scripts": {
    "lint": "eslint --ext .js,.ts .",
    "build": "tsc",
    "build:watch": "tsc --watch",
    "serve": "npm run build && firebase emulators:start --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "npm run build && firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "16"
  },
  "main": "lib/index.js",
  "dependencies": {
    "firebase-admin": "^10.0.2",
    "firebase-functions": "^3.18.0"
  },
  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "^5.12.0",
    "@typescript-eslint/parser": "^5.12.0",
    "eslint": "^8.9.0",
    "eslint-config-google": "^0.14.0",
    "eslint-plugin-import": "^2.25.4",
    "firebase-functions-test": "^0.2.0",
    "typescript": "^4.5.4"
  },
  "private": true
}

Firebaseを見てみると、関数のDeployに成功しているようですね。

まとめ

Cloud Functionsは、あまり情報がないので、難しいですね。
TypeScriptで書くともっと難しくなるし、ESLintの設定入れると結構エラーにハマります。

  • ハマった内容
    • TypeScriptを使用する.
    • ESLintを導入する.
    • .vscodeの設定が必要.

Discussion