Swift 后台通知 Firebase

Posted

技术标签:

【中文标题】Swift 后台通知 Firebase【英文标题】:Swift Background Notifications Firebase 【发布时间】:2017-11-26 18:12:03 【问题描述】:

我正在处理我的后台通知,如果发生任何事件(如评论、关注等),用户应该在其中得到通知

我有一个功能可以检查用户通知中是否在数据库中添加了一个孩子,这或多或少都很好。

我的问题是检查 firebase 数据库中新 Childs 的功能并不总是有效。 我在appDelegate中调用所有类型的函数

    func applicationWillTerminate(_ application: UIApplication) 
    API.pushNotifications.checkNewFollow()

    func applicationWillResignActive(_ application: UIApplication) 
    API.pushNotifications.checkNewFollow()



func applicationDidEnterBackground(_ application: UIApplication) 
    API.pushNotifications.checkNewFollow()

但它并不总是并且不会无限长地检查数据库。在我看来,一段时间后,它会停止检查数据库的更新。 更重要的是,当我第一次启动应用程序时它不起作用,除非它起作用,否则我总是必须刷新我的主视图。

知道如何更好地执行这些任务吗? 你如何处理后台任务? 我很高兴收到任何提示!

【问题讨论】:

【参考方案1】:

ios 应用程序长时间不在后台运行我认为您应该有后端服务来安排通知,当应用程序在后台或终止时它会通知该用户 因此,您可以在 firebase 中设置该用户不再处于活动状态的标志,而不是应用调用 firebase 数据库,调度程序将跟踪并通知该用户 如果您的服务器是 Windows,您可以使用quartz.net 进行调度 或为 linux 服务器创建 cron 作业

【讨论】:

问题是当我从 firebase 发送云消息时,它总是会立即收到它

以上是关于Swift 后台通知 Firebase的主要内容,如果未能解决你的问题,请参考以下文章

Swift 后台通知 Firebase

Swift - 在后台在应用程序中接收本地通知时执行功能

Swift - 如何在后台和前台获得某些无声通知?

应用程序在后台时没有出现swift 4通知

在 Swift 中在后台检查服务器端应用程序通知

推送通知无法正常工作,当应用程序在后台时,Swift