Firebase 分析日志事件在电子的生产版本中不起作用

Har*_*ari 5 javascript firebase reactjs electron

我使用了一个firebase包来使用实时数据库,我想实现 firebase 分析,所以我使用了相同的包并编写了用于分析的代码

import * as firebase from 'firebase'
import 'firebase/analytics'
import { fireBase } from 'configs/config'
const config = {
  apiKey: fireBase.REACT_APP_FIREBASE_API_KEY,
  authDomain: fireBase.REACT_APP_FIREBASE_AUTH_DOMAIN,
  databaseURL: fireBase.REACT_APP_FIREBASE_DATABASE_URL,
  projectId: fireBase.REACT_APP_FIREBASE_PROJECT_ID,
  storageBucket: fireBase.REACT_APP_FIREBASE_STORAGE_BUCKET,
  messagingSenderId: fireBase.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
  appId: fireBase.REACT_APP_FIREBASE_APP_ID,
  measurementId: fireBase.REACT_APP_MEASUREMENT_ID,
}
firebase.initializeApp(config)
export const defaultAnalytics = firebase.analytics()
export default firebase
Run Code Online (Sandbox Code Playgroud)

之后,我在需要它的文件中导入了defaultAnalytics并将该代码用于记录事件以进行分析

defaultAnalytics.logEvent('profile_update')
Run Code Online (Sandbox Code Playgroud)

它在开发中完美运行,但在生产模式下无法运行

Har*_*ari 3

在电子中存在类似问题,当我们在开发模式下运行应用程序时,它会轻松记录 firebase 事件,因为应用程序在 localhost:3000 上运行,因此事件将起作用。

但是,当我们为 mac/windows 创建构建时,它不会记录该事件,因为当构建在http协议上运行并且我们的电子应用程序生产构建运行file://协议时, firebase包会工作。

所以在这里我们必须使用测量协议,因为我们需要在 firebase 应用程序中创建一个单独的属性。

创建属性的步骤:

  1. 访问analytics.google.com,然后创建一个firebase应用程序。
  2. 单击“创建属性”并选择网站选项。
  3. 提供网站 URl 和属性名称。

之后,您将获得跟踪信息。其中将提供跟踪代码。

然后在主要流程中使用通用分析。

这是完整的实现。 https://kilianvalkhof.com/2018/apps/using-google-analytics-to-gather-usage-statistics-in-electron/