应用关闭时 Firebase 是否同步记录的事件?

Does Firebase synchronise logged events when app is closed?

如果在应用 运行 期间没有互联网连接并且此后应用从未打开过,logged events 会怎样?

当出现互联网连接时,Firebase 是否使用某种 JobScheduler(以及 iOS 的其他替代方法)来同步记录的事件?

在对该问题的评论中,@SergGr 和@Frank 表示在 iOS 上从未上传该事件。

在 Android,我的观察是事件被记录到处理缓冲和上传的共享系统服务(不是应用程序的一部分)。因此,无论原始应用程序是否仍在 运行ning,服务稍后都会上传没有互联网连接时记录的事件。

此行为可以通过 enabling analytics logging 观察并查看 adb window 中的日志输出。系统服务的标签是 FA-SVC。

下面包含一些摘录的日志输出示例。我为我的测试执行了这些步骤:

  1. 已开启飞行模式
  2. 运行 应用生成事件
  3. 将应用程序置于后台,从最近的任务列表中滑动以将其杀死
  4. 禁用飞行模式
  5. 等待 FA-SVC 运行 并上传事件(这可能长达一个小时)
  6. 检查了 FA-SVC 记录的上传事件数据的缓冲区,以确认包含应用事件

// uploading seems occur about every hour
03-02 07:40:42.397 V/FA-SVC  ( 1889): Upload scheduled in approximately ms: 3599957
// the service detects connectivity changes
03-02 06:47:16.496 V/FA-SVC  ( 1889): NetworkBroadcastReceiver received action: android.net.conn.CONNECTIVITY_CHANGE
// this log marks the start of upload; followed by logs for each uploaded event
03-02 07:40:41.757 V/FA-SVC  ( 1889): Uploading data. app, uncompressed size, data: com.qbix.xxxx, 3450