Firebase-应用长时间无响应(由于数据同步?)

时间:2019-03-19 16:11:32

标签: ios swift firebase firebase-realtime-database

我正在开发类似RunKeeper的应用程序。

当应用捕获了很多位置数据,并且所有数据由于没有互联网连接而保存在本地时,就会发生此问题。

长时间连接到wifi并打开应用程序时,它会长时间显示处理图标。

    showProcessingIcon()

    userRef.observeSingleEvent(of: .value, with: { snapshot in
        //.... process and display data....

        hideProcessingIcon()    
    }) { (error) in
        //.... handle error....

        hideProcessingIcon()            
    }

有时,处理图标在大约一分钟后消失。有时我必须等待5分钟左右才能退出应用程序,并且处理图标仍在旋转。有时,我在等待处理完成时注意到应用程序已卸载(1分钟后电话自动锁定)。

有什么办法避免这种情况吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

当Firebase SDK联机时,您无法真正阻止数据同步。如果您有大量待处理的写操作,则需要花费很长时间才能完成,并且将阻止其他写操作,直到完成为止。

您可以做的是将数据收集到其他一些存储区(本地文件或数据库)中,而不是使用SDK直接写入数据库中。然后,您可以选择何时将这些数据最终写入Realtime Database(但仍然需要很长时间才能完成)。