【问题标题】:Cloud function for firebase being fired too many timesfirebase 的云功能被触发太多次
【发布时间】:2019-06-24 20:45:38
【问题描述】:

我们有一个 android 应用程序,它每 30 秒收集一次用户的位置并将其写入 Firebase 实时数据库。如果用户的位置在 15 分钟内没有改变,我想在 firebase 上执行云功能。

初步方法: 让 Android 应用每 15 分钟进行一次 HTTP 调用以调用云函数。

方法的问题: 有 1000 个活跃用户,预计将增长到 10,000,这种方法将导致每天触发 960,000(1000 个用户 * 每小时 4 个请求 * 24 小时)次。

位置的目的是如果 15 分钟后没有变化,云功能会向 Web 客户端发送通知。 手机在低连接性下运行并且是低端设备,因此让手机触发通知是不可行的。

目标是尽量减少要触发的云函数的数量。

什么是正确的方法可以最大限度地减少云函数调用的数量?

【问题讨论】:

  • 您可能需要重新表述您的问题,因为目前尚不清楚您的问题是什么。
  • 在我看来,了解设备是否未移动的最佳方法是在设备本身上检测它,因为它具有 GPS。为什么需要后端来确定这一点?
  • 你是对的。正如@vershov 所建议的那样。后端不是执行此操作的最佳位置。

标签: android firebase google-cloud-functions


【解决方案1】:

您要求的解决方案取决于位置数据使用的上下文。

  • 如果只是统计数据,可以在本地缓存位置数据,不定时推送到云端。
  • 如果位置数据用于提供基于的服务,则由您根据实现的算法来决定。

【讨论】:

  • 定位的目的是如果15分钟后没有变化,云功能会发送通知给web客户端。
  • @YashSharma,如果是这样,您为什么不能在本地跟踪客户端位置,并且在同一位置 15 分钟后,从客户端触发云功能?
  • 事实证明这实际上是正确的方法。在移动设备上做这件事很简单。在后端它似乎不可行。
猜你喜欢
  • 2020-11-21
  • 2021-11-27
  • 1970-01-01
  • 2020-11-12
  • 2018-06-15
  • 1970-01-01
  • 2018-08-28
相关资源
最近更新 更多