【问题标题】:Background Thread to upload data to Firebase将数据上传到 Firebase 的后台线程
【发布时间】:2019-05-21 20:38:07
【问题描述】:

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

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

这段代码好像是在执行线程,但是应该放在哪里呢?我可以把它放在我的 applicationDidEnterBackground 或 applicationWillTerminate 中吗?

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

【问题讨论】:

  • 出于好奇,即使用户终止了应用程序,也需要写入数据库的用例是什么?

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


【解决方案1】:

您可以将您的代码放在applicationDidEnterBackground / applicationWillTerminate 中,但不能保证它会成功上传到 firebase,因为应用程序在发送到后台或在 willTerminate 中后处于活动状态的时间完全取决于当前打开的应用程序当时的压力,老实说,如果应用程序不在前台执行广泛的任务,它会被IOS关闭

你可以使用后台获取

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

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

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多