javascript - Firebase 分析日志事件在 Electron 生产构建中不起作用

标签 javascript reactjs firebase 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

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

defaultAnalytics.logEvent('profile_update')

它在开发模式下运行良好,但在生产模式下运行不正常

最佳答案

在 electron 中存在问题,当我们在开发模式下运行应用程序时,它会很容易地记录 firebase 事件,因为该应用程序在 localhost:3000 上运行,因此事件将起作用。

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

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

创建属性的步骤:

  1. 转到 analytics.google.com,然后创建一个 Firebase 应用。
  2. 点击创建 Assets 并选择网站选项。
  3. 提供网站 URl 和属性名称。

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

然后使用universal-analytics在主进程中。

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

关于javascript - Firebase 分析日志事件在 Electron 生产构建中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58660828/

相关文章:

javascript - 如何使用JS过滤器过滤重复值并获取最新的交易对象?

javascript - C++ 使用批处理脚本清除所有浏览器 cookie

javascript - 通过按钮输出名称

firebase - gcloud Firestore导出不导出子集合

javascript - 使用 Javascript Set 作为 Mongoose SchemaType?

javascript - react-window fixedSizeGrid 与 react-window-infinite-loader

reactjs - 如何在ReactJS中为子路由概念创建默认路由

Node.js错误: Cannot find module 'firebase/storage'

javascript - FCM 考虑了 Cloud Functions for Firebase 上的外部网络

javascript - 在 JavaScript 中将字符串转换为 Node 元素