来自iOS的Firebase Analytics事件没有显示出来

我正在testing新的基于Google的Firebase,并已实施远程通知和崩溃报告。 不过,我在分析工作方面遇到了很大的问题。

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

那么,我确实收到了一些事件,但是这些事件不是由我发送的(比如first_opensession_start )。 另外,这个数据似乎在很长一段时间后才会下降。

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

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

这似乎真的很奇怪 – 在尝试发送下一批数据之前,Firebase等待将近一个小时必须是一个错误,或者是可configuration的? 当我等待了这么长时间的延迟,数据被发送,但没有显示出来。

Firebase事件会一起批量上传,并且每小时上传一次,以防止设备上的电量消耗过多。 在iOS上,当您在1h上传目标之前后台应用程序时,此时将在后台调度事件。

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

一旦事件上传,在数据显示在Firebase Analytics控制面板中之前大约3小时会有延迟。 此外,默认的date范围排除“今天”,所以你只能看到昨天的事件。 如果您想查看最新的事件,则可以将dateselect器切换到“今天”。

延迟/批量数据上传的主要原因是节省电池。 每次使用networking时,设备移动networking调制解调器都会进入高功率模式,并保持这种模式一段时间。 如果定期使用networking,则会严重影响电池寿命。 通过一起批量上传并延迟上传,对电池的影响显着降低。

在Swift中,它应该是这样的:

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

要在Firebase中查看此事件:

  1. 转到Firebase控制台→分析标签
  2. 点击DebugView选项卡; 您的活动显示在那里

要在Xcode中查看此事件:

  1. 在Xcode中,selectProduct→Scheme→EditScheme
  2. select从左侧菜单运行
  3. select参数选项卡
  4. 在启动时通过的参数中,添加--FIRAnalyticsDebugEnabled

如果您没有在控制台中接收事件,则可能是因为您没有遵循命名约定,因为如果事件名称中有空格,它将永远不会显示在控制台中,如下所示:

 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 

您可以参阅本教程以获取更多信息: iOS上的Firebase Analytics入门:事件 – Firecast

first_opensession_start被Firebase列为自动收集的事件 。

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

我发现这个StackOverflow问题提到了相同的debugging行,但与Google App Measurement或旧的Google Mobile Analytics SDK有关。

另外,请注意,Firebase Console不会实时显示事件( 来源 ):

您可以在Firebase控制台信息中心中查看关于您的事件的汇总统计信息。 这些仪表板全天定期更新 。 要立即进行testing,请按上一节所述使用logcat输出。

这里只是一个简单的说明:根据这个小videohttps://www.youtube.com/watch?v=5pYdTgSkW5E玩模拟器后, 你需要按Xcode的主页button,否则数据将不会被发送到服务器。