将数据上传到Firebase的后台线程

时间:2019-05-21 20:38:07

标签: swift multithreading firebase google-cloud-firestore grand-central-dispatch

我将在我的应用程序中的哪里运行后台线程,以便将数据上传到Firestore数据库。

该应用将在后台运行或终止,即使用户已关闭该应用,我仍需要将信息上传到服务器

该代码似乎可以执行线程,但是应该放在哪里?我可以将其放入applicationDidEnterBackground或applicationWillTerminate吗?

DispatchQueue.background(background: {
    let checkPointWorker = CheckPointWorker()
        checkPointWorker.writeCheckPointsToFirestore()
}, completion:{
    // Background job finished
})

1 个答案:

答案 0 :(得分:1)

您可以将代码放入applicationDidEnterBackground / applicationWillTerminate内,但不能保证在将应用发送到后台或内部后,该应用处于活动状态会成功将其成功上传到firebase willTerminate完全取决于当时当前打开的应用程序的压力,并且诚实地说,如果它在不处于前台的情况下执行了广泛的任务,则该应用程序将被IOS关闭

您可以使用后台获取

https://medium.com/@vialyx/ios-dev-course-background-modes-fetch-70c18f9f58d5

并将其用于上传而不是下载,但最好是在再次打开应用程序时进行上传