問題
Firebaseを認証してfirestoreを使用しようとしたらエラーが出た。
間違っているスクリプト
import firebase from "firebase/app";
import "firebase/app";
import "firebase/firestore";
import "firebase/auth";
const firebaseApp = firebase.initializeApp({
...
});
export const db = firebaseApp.firestore();
export const auth = firebase.auth();
下記のエラーが出た
Property 'firestore' does not exist on type 'FirebaseApp'
Property 'auth' does not exist on type 'typeof import("/Users/.../node_modules/firebase/app/dist/app/index")'
原因・解決策
compatを足すだけ
参考にしていたスクリプトがv8のものだったのが原因である。
インストールしたものはv9だった。
import firebase from "firebase/compat/app";
import "firebase/compat/app";
import "firebase/compat/firestore";
import "firebase/compat/auth";
const firebaseApp = firebase.initializeApp({
...
});
export const db = firebaseApp.firestore();
export const auth = firebase.auth();
compatライブラリについて詳細は公式ページ
そもそもv9の書き方に倣えば。
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import { getFirestore } from "firebase/firestore";
// Initialize Firebase
const app = initializeApp({
//...
});
const auth = getAuth(app);
export const db = getFirestore(app);