如何在调试与生产版本中以不同方式记录 Firebase Analytics

问题描述 投票:0回答:1

我在 iOS 应用中使用 Firebase Analytics。我创建了两种“环境”——一种用于生产,一种用于登台。登台的想法是将开发版本中的应用程序数据与生产版本分开(例如,我在产品与阶段中使用不同的数据库实例)。

我的应用程序中的分析记录类似于:

import Firebase Analytics

// do this somewhere
Analytics.logEvent(name, parameters: ["param" : value])

但是,Google Analytics 将聚合来自生产环境和临时环境的事件,这可能会根据开发构建中发生的情况来扭曲数据。我希望能够看到产品构建的分析。

我有一个机制来检测我们所处的环境,所以我可以创建一个函数

func logEvent(name: String, parameters: [String: Any]) {
    if DatabaseClient.environment == .production {
        Analytics.logEvent(name, parameters: ["param" : value])
    }
}

但是,我主要担心的是,这将使验证运行暂存构建时是否触发分析事件变得困难。我目前在测试事件时使用

-FIRAnalyticsDebugEnabled
环境参数,以便我可以在控制台中查看记录的事件,但如果我们将事件日志记录仅限于生产构建,我们将无法在暂存构建中验证这一点。

ios swift firebase google-cloud-firestore firebase-analytics
1个回答
0
投票

您还没有说明如何为您的应用创建这些所谓的“环境”,但我猜测您以某种方式将它们全部放入同一个 Firebase 项目中。 而且,根据您之前的编辑,您假设在该项目中创建一个新的 Firestore 实例将有效地分离使用该项目的每个应用程序的数据。 不幸的是,这根本不是它的工作原理。

在 Firebase 中创建部署环境的唯一真正方法是为每个环境使用不同的项目。 这样,每个环境中的每个应用程序将无法相互了解,也无法读取和写入彼此的数据,包括 Firebase Analytics 数据。 文档中更详细地介绍了在多个环境中使用多个项目 - 您应该仔细阅读:

引用文档:

  • 注册到同一 Firebase 项目的所有 Firebase 应用共享并有权访问为该项目配置的所有相同资源和服务。以下是一些示例:

    • 注册到同一 Firebase 项目的所有 Firebase 应用共享相同的后端,例如 Firebase 托管、身份验证、实时数据库、Cloud Firestore、云存储和云功能。

    • 注册到同一 Firebase 项目的所有 Firebase 应用都与同一个 Google Analytics 属性关联,其中每个 Firebase 应用都是该属性中的单独数据流。

© www.soinside.com 2019 - 2024. All rights reserved.