ios - 后台 Swift 中的 Firebase 侦听器
问题描述
我正在尝试收听 Firebase 的回调 -
let ref = Database.database().reference()
ref.child(key).observe(.value) { (snapshot) in
print("snapshot")
}
每次我更新给定key
节点内的某些值时都会调用此方法。
不幸的是,当应用程序在后台时,它没有被调用。我知道后台获取,但我不想获取我想等待回调,回调会来,有时会在 1 分钟后,有时会在 10 分钟后(通过后台获取,我需要等待操作系统决定现在是取货的好时机)
如何在后台保持活力以收听 Firebase 回调?
编辑:
我将详细解释我的用例 - 每次数据库节点更改时,我都需要向用户发送本地通知。但是当应用程序在后台时不会调用侦听器,因此我无法调用本地通知。
我知道我可以使用推送通知,但我不想对我的数据库进行这些更改,我目前不需要用户或设备 ID 或类似的东西,我想保持这种方式。
已编辑
更多关于用例的信息——我在一个长回合制游戏中有 4 名玩家。在播放器 1 播放时,播放器 4 可能不会留在应用程序中,因为它可能需要一些时间(从 1 到 30 分钟)。我想在轮到他时通知玩家 4。每个玩家turn
每次完成他的回合时都会设置一个值,而其他玩家正在监听该值的变化。
在 android 上,即使在后台,我们也会一直监听这些变化,当turn
发生变化时,监听器会收到回调,并且从回调中,我们通过本地通知通知用户“轮到你了”。我想在 iOS 上做同样的事情。
解决方案
推荐阅读
- powerbi - PowerBI - Power Query/M - 限制列值的字符并添加后缀
- c++ - 如何在 C++ 数学中根据方向获取坐标
- git - Visual Studio:你如何设置你的 git 用户名和密码?
- python - 纸浆中的多种优化解决方案
- php - 如何修复在 Heroku 上找不到的文件?
- html - 在 HTML 中将 CSS 类名包装在括号中有什么意义?
- r - 不能在函数内部使用charter
- r - 如何在R中合并两个具有重复维度的矩阵?
- css - 防止标题背景图像在较大的视口上变窄
- python - BranchPythonOperator 后的气流任务被意外跳过