【问题标题】:Is using Firestore Cloud functions different from using active listeners within the application?使用 Firestore Cloud 功能与在应用程序中使用活动侦听器不同吗?
【发布时间】:2020-04-01 10:40:43
【问题描述】:

几周以来,我一直在努力寻找问题的答案,但没有任何运气。

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

有人告诉我要使用主动侦听器或云功能。

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

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

这与也这样做的主动侦听器有何不同?

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

【问题讨论】:

  • Cloud Functions 在 Google 后端服务器上运行代码。侦听器在客户端移动应用程序上运行。它们完全不同,所以我不确定您要比较什么。
  • @DougStevenson,很抱歉不清楚,我对编码很陌生。我只是想弄清楚什么是最划算和最合适的解决方案来实现我的目的,在主要问题中以粗体显示。感谢您的回复!

标签: swift firebase google-cloud-firestore google-cloud-functions fetch


【解决方案1】:

要在午夜执行功能以更改 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)

【讨论】:

  • 非常感谢您澄清这一点,我一直在寻找这个解释一段时间了! (稍后会删除以清理线程)
猜你喜欢
  • 2021-08-07
  • 2021-11-18
  • 1970-01-01
  • 2021-09-25
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
相关资源
最近更新 更多