将Firebase Analytics添加到NextJS 13应用程序/页面

am46iovg  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(111)

什么是正确的方法来添加firebase分析到一个nextJS 13应用程序?大多数的文档或职位是nextJS v13应用程序/页面之前。我已经添加了一个firebase.ts文件,并添加了以下内容

"use client";
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
import { firebaseConfig } from "./src/configs/firebase.config";

// Initialize Firebase
const app = initializeApp(firebaseConfig);

// Initialize Analytics and get a reference to the service
const analytics = getAnalytics(app);

export { app, analytics };

字符串
在我的一个布局组件中,我添加了这个useEffect

useEffect(() => {
    if (typeof window !== "undefined") logEvent(analytics, "page_view");
  }, []);


我在服务器中得到以下错误
@firebase/analytics:分析:此环境中不支持Firebase Analytics。将分析的初始化 Package 在analytics.isSupported()中,以防止在不支持的环境中进行初始化。详细信息:(1)Cookie不可用。(analytics/invalid-analytics-context)。
我已经尝试删除使用客户端,但我得到窗口未定义错误。如何在NextJS中正确添加firebase?

z31licg0

z31licg01#

使用isSupported . from here
这是一个提供给用户的公共静态方法,它 Package 了四种不同的检查:
1.检查它是否不是浏览器扩展环境。
1.检查当前浏览器中是否启用了Cookie。
1.检查浏览器环境是否支持IndexedDB。
1.检查当前浏览器上下文是否可用于使用IndexedDB.open()。

import { initializeApp } from "firebase/app";
import { getAnalytics, isSupported } from "firebase/analytics";

const app = initializeApp(firebaseConfig);
let analytics;
isSupported().then((_)=>{ analytics = getAnalytics(app)}).catch((e)=>console.warn("Analytics is not supported in this environment.",e.message))

字符串

相关问题