我用了 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 应用程序中创建一个单独的属性。
创建属性的步骤:
- 转到 analytics.google.com,然后创建一个 Firebase 应用。
- 点击创建 Assets 并选择网站选项。
- 提供网站 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/