shio3616
@shio3616 (Haruto Shiohata)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

firebase-adminがあったプロジェクトにfirebaseを入れたら「モジュール 'firebase' またはそれに対応する型宣言が見つかりません。」

概要

Node.jsにて、firebase-adminfirebaseを併用したいです。

最初にfirebase-adminを入れていたNode.jsのプロジェクトに、後からfirebaseを追加したところ、モジュール 'firebase' またはそれに対応する型宣言が見つかりません。というエラーが出ました。
解決方法はおろか、原因も分からないです...。
どなたか、ご教授いただければと思います。

再現方法

以下は、問題が発生したプロジェクトのpackage.jsonの一部抜粋と、tsconfig.jsonです。

package.json
{
// ---snip---
  "dependencies": {
    "@nestjs/apollo": "^10.0.14",
    "@nestjs/common": "^8.4.6",
    "@nestjs/config": "^2.1.0",
    "@nestjs/core": "^8.4.6",
    "@nestjs/graphql": "^10.0.15",
    "@nestjs/platform-express": "^8.4.6",
    "@nestjs/testing": "^8.4.6",
    "@prisma/client": "^3.15.1",
    "apollo-server-core": "^3.8.2",
    "apollo-server-types": "^3.6.0",
    "class-transformer": "^0.5.1",
    "class-validator": "^0.13.2",
    "express": "^4.18.1",
    "firebase-admin": "^11.0.0",
    "graphql-tag": "^2.12.6",
    "jest-mock-extended": "^2.0.6",
    "rxjs": "^7.5.5",
    "supertest-graphql": "^1.1.4",
    "ts-pattern": "^4.0.3"
  },
  "devDependencies": {
    "@apollo/rover": "^0.7.0",
    "@nestjs/cli": "^8.2.6",
    "@nestjs/schematics": "^8.0.11",
    "@types/jest": "^28.1.1",
    "@types/node": "^17.0.42",
    "@typescript-eslint/eslint-plugin": "^5.27.1",
    "@typescript-eslint/parser": "^5.27.1",
    "apollo-server-express": "^3.8.2",
    "eslint": "^8.17.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-prettier": "^8.5.0",
    "eslint-plugin-import": "^2.26.0",
    "eslint-plugin-prettier": "^4.0.0",
    "graphql": "^16.5.0",
    "jest": "^28.1.1",
    "prettier": "^2.6.2",
    "prisma": "^3.15.1",
    "prisma-nestjs-graphql": "^16.0.1",
    "reflect-metadata": "^0.1.13",
    "rimraf": "^3.0.2",
    "ts-jest": "^28.0.4",
    "ts-node": "^10.8.1",
    "typescript": "^4.7.3"
  }
// ---snip---
}
tsconfig.json
{
  "compilerOptions": {
    "module": "commonjs",
    "lib": ["ESNext"],
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "skipLibCheck": true,
    "strictNullChecks": true,
    "noImplicitAny": false,
    "strictBindCallApply": false,
    "forceConsistentCasingInFileNames": false,
    "noFallthroughCasesInSwitch": false,
    "esModuleInterop": true
  }
}

ここに、以下のコマンドでfirebaseを追加しました。

yarn add firebase

そうしたところ、以下のコードで上記エラーが発生しました。

import { auth } from 'firebase';

補足

キャッシュを削除した

新しく別のプロジェクトを作成してfirebaseをimportしようとしたところ、全く同じエラーが出力されました。
これはもしやキャッシュに問題があるのではと思いyarn cache cleanを実行してから上記再現手順を踏んでみましたが、何の変化も現れませんでした...。

依存関係を入れる順番を変える

こちらの記事とIssuesを参考に、firebasefirebase-adminをプロジェクトに導入する順番を変えてみました。
が、やはり解決には至りませんでした。

0

1Answer

公式ドキュメントの書き方で試してみてはいかがでしょうか。

import { getAuth } from "firebase/auth";

1Like

Comments

  1. @shio3616

    Questioner

    解決しました...!!
    灯台下暗しすぎました...!!
    ありがとうございます...!!

Your answer might help someone💌