我正在尝试在Next中实现和导出firebase分析模块。js(firebase v9)
我得到错误**“ReferenceError:window is not defined”**for the following code snippet.以前的所有功能都很好。
有办法解决吗?
import { initializeApp, getApps, getApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
import { getAuth } from 'firebase/auth'
import { getFirestore } from '@firebase/firestore'
const firebaseConfig = {
//...
};
// Initialize Firebase
const app = !getApps().length ? initializeApp(firebaseConfig) : getApp();
const auth = getAuth();
const db = getFirestore(app)
// try to add analytics
const analytics = getAnalytics(app)
export {auth, db, analytics}
3条答案
按热度按时间mctunoxg1#
Next.js:
62o28rlo2#
版本9 SDK不检查窗口对象。您必须使用类似
typeof window !== "undefined"
的东西来实现自己的检查。2vuwiymt3#
当使用@Adam Beleko的答案时,我得到了这个错误:
导出可变的“let”绑定,请改用“const”。eslintimport/no-mutable-exports错误。
为了解决这个问题,我将其更改为:
const analytics = app.name && typeof window !== 'undefined' ? getAnalytics(app) : null;
您的代码中包含修改了“窗口未定义”错误的行: