来自iOS的Firebase Analytics事件未显示

时间:2016-05-24 14:12:00

标签: ios firebase firebase-analytics

我正在测试新的Google支持的Firebase,并实施了远程通知和崩溃报告。但是,我在使用Analytics工作时遇到了很多问题。

我使用FIRAnalytics.logEventWithName(...)跟踪事件,并使用FIRAnalytics.setUserPropertyString(...)保存用户pproperties。但是,无论我做什么,Firebase Analytics控制台中都不会显示任何数据。

好吧,我确实收到了一些活动,但这些活动并非由我发送(例如 first_open session_start )。此外,这些数据似乎在很长一段时间后都会出现。

此外,当我跟踪事件并保存用户数据时,我会收到以下信息:

Upload task scheduled to be executed in approx. (s): 3102.294599890709

这看起来很奇怪 - Firebase在尝试发送下一批数据之前等待差不多一个小时必须是一个bug,还是可以配置?当我等待那么长时间的延迟时,数据被发送......但是没有显示出来。

10 个答案:

答案 0 :(得分:54)

Firebase事件一起批处理并每小时上传一次,以防止设备过度耗尽电池电量。在iOS上,当您在1h上传目标之前对应用程序进行后台处理时,此时将在后台调度事件。

您可以启用iOS的调试日志记录(https://firebase.google.com/docs/analytics/ios/events#view_events_in_the_xcode_debug_console),以查看何时在调试控制台中上传事件。

上传事件后,大约3小时会有延迟,之后数据会显示在Firebase Analytics信息中心中。此外,默认日期范围不包括"今天"所以你只能看到昨天的事件。如果您想查看最新活动,可以将日期选择器切换到今天。

延迟/批量上传数据的主要原因是节省电池电量。每次使用网络时,设备移动网络调制解调器都处于高功率模式并保持此模式一段时间。如果经常使用网络,则会对电池寿命造成严重影响。通过将上传批量合并并延迟上传,可以显着降低对电池的影响。

答案 1 :(得分:15)

在Swift中应该是这样的:

FIRAnalytics.logEvent(withName: "SignUp", parameters: ["user_id": userid, "user_name": username])

要在Firebase中查看此事件:

  1. 转到Firebase控制台→“分析”标签
  2. 单击DebugView选项卡;你的活动在那里显示
  3. 要在Xcode中查看此事件:

    1. 在Xcode中,选择产品→方案→EditScheme
    2. 从左侧菜单
    3. 中选择“运行”
    4. 选择参数选项卡
    5. 在启动时传递的参数中,添加-FIRAnalyticsDebugEnabled

答案 2 :(得分:9)

如果您没有在控制台中接收事件,可能是因为您没有遵循命名约定,正如我所经历的那样,如果事件名称中有空格,它将永远不会出现在控制台中,如下所示:

mFirebaseAnalytics.logEvent("Add Camera", bundle);

但当您删除以下空格时:

mFirebaseAnalytics.logEvent("Add_Camera", bundle);

现在,您将在大约3小时后在控制台中看到事件。 在以下情况下,应用程序将数据分发到控制台:

1- Data is more than an hours old
2- App goes into the background

您可以观看本教程以获取更多信息: Getting Started with Firebase Analytics on iOS: Events - Firecasts

答案 3 :(得分:1)

first_opensession_start被Firebase列为Automatically collected events

我无法帮助您解决在自定义事件中遇到的极端上传任务延迟问题..但Firebase Analytics不到一周的时间,可能只是他们身边的错误。

我发现this StackOverflow question提到了相同的调试行但与Google App Measurement或旧的Google Mobile Analytics SDK相关。

另请注意,Firebase控制台无法实时显示事件(source):

  

您可以在Firebase控制台信息中心中查看有关您的活动的汇总统计信息。 这些信息中心会在一天内定期更新。要立即测试,请使用上一节中描述的logcat输出。

答案 4 :(得分:1)

React-Native App(IOS / Android)

我遇到了同样的问题,debugView无法正常工作,并且streamView出现故障几次,我发现测试我的事件的最佳方法是使用createPageEvent()进行logEvents然后

重要的是在记录事件后将应用程序置于后台,它们将在firebase事件或streamView中几乎实时显示(检查this article以查看事件何时发生发送到Firebase)

事件仅在记录后1小时后发送,或者如果您将应用置于后台则立即发送。

import firebase, { RNFirebase } from 'react-native-firebase';

export default class AnalyticsService  {

    static async initialize() {
        firebase.analytics().setAnalyticsCollectionEnabled(true);
    }

    static async createPageEvent(screen: string) {
        firebase.analytics().setCurrentScreen(screen)
        firebase.analytics().logEvent(`open_${screen}`)
    }

}

结果几乎是实时在streamView中->

enter image description here

现在您可以开始构建渠道和内容

答案 5 :(得分:0)

这里只是一个简单的注释:根据这个小视频https://www.youtube.com/watch?v=5pYdTgSkW5E播放模拟器后你需要按Xcode上的主页按钮,否则数据将不会被发送到服务器。

答案 6 :(得分:0)

大多数人面临的最常见问题是,即使一切工作正常,firebase也不记录事件 这就是我在文档中找到的

如果您需要在某个版本的应用中永久停用Google Analytics(分析)集合,请在应用的Info.plist文件中设置FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES。设置FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES优先于应用程序FIREBASE_ANALYTICS_COLLECTION_ENABLEDInfo.plist的任何值以及使用setAnalyticsCollectionEnabled设置的任何值。

要重新启用收藏集,请从您的FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED中删除Info.plist。将FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED设置为NO无效,其行为与未在FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED中设置Info.plist file相同。

因此,您必须从FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED文件中删除google-servicesinfo.plist才能使分析工作

答案 7 :(得分:0)

要检查的另一件事是确保在“启动时传递的参数”中的日志记录条目正确。它们应以短划线开头,例如

-FIRAnalyticsDebugEnabled

而不是

FIRAnalyticsDebugEnabled

前几天我浪费了一个小时,想知道为什么什么都没记录。

答案 8 :(得分:0)

确保您的设备未设置为省电模式。在这种模式下,即使您按照其他人的说明在调试模式下运行firebase,事件也可能仅偶尔积累和发送一次。

答案 9 :(得分:0)

在Firebase中更新事件花费太多时间。大概一天一次。请参见iOSAndroid记录Firebase事件。

您可以启用详细日志记录以通过SDK监视事件的日志记录 帮助验证事件是否已正确记录。这包括 自动和手动记录的事件。

您可以启用以下详细记录:

  1. 在Xcode中,选择产品>方案>编辑方案...
  2. 从左侧菜单中选择“运行”。
  3. 选择“参数”标签。
  4. 在“启动时传递的参数”部分中,添加 -FIRAnalyticsDebugEnabled。

下次运行应用程序时,事件将显示在Xcode中 调试控制台,可帮助您立即验证事件是否正在发生 已发送。