首页 > 解决方案 > 使用 Firestore Cloud 功能与在应用程序中使用活动侦听器不同吗?

问题描述

几个星期以来,我一直试图找到我的问题的答案,但没有任何运气。

我有一个 swift 应用程序,它在屏幕上显示一些标签。我希望标签文本在每天午夜更改,并且我希望能够决定标签应该从我的机器上说什么。

我被告知要使用主动侦听器或云功能。

下面的视频展示了一个开发人员使用 Firebase 云功能在应用程序上实时更改文本。

https://www.youtube.com/watch?v=Z87OZtIYC_0

这与也这样做的积极听众有什么不同?

客观地说,什么更适合我的用例?

标签: swiftfirebasegoogle-cloud-firestoregoogle-cloud-functionsfetch

解决方案


要在午夜执行功能以更改 UI,首先需要打开应用程序。如果应用程序甚至没有打开,那么就没有要更新的 UI。因此,使用此功能为服务器分配任务是没有意义的,因为该应用程序甚至可能未打开。无论如何,更新 UI 的任务应该是客户端的责任。

因此,在客户端(在您的应用程序中)创建一个计时器,该计时器在每个午夜进行调用以从填充标签的服务器获取数据。您需要创建一个在几秒钟内到午夜Timer触发的对象,n其间隔为 1 天,无限重复。它可能看起来像这样:

var midnightTimer: Timer?

midnightTimer = Timer(fire: Date().addingTimeInterval(secondsToMidnight), interval: oneDayInSeconds, repeats: true) { (timer) in
    self.updateLabels()
}

RunLoop.main.add(midnightTimer!, forMode: .common)

推荐阅读