【发布时间】:2017-12-05 00:24:15
【问题描述】:
我的应用程序需要在处理用户请求之前构建几个大型哈希图。理想情况下,我想将这些哈希图存储在机器上的内存中,这意味着它永远不必进行任何昂贵的处理,并且可以快速处理任何传入的请求。
但这不适用于 firebase,因为用户有可能触发一个新实例,这会引发非常耗时的预处理步骤。
因此,我尝试将我的应用程序设计为使用 firebase 数据库,并且每次仅从数据库中获取所需的数据,而不是将所有数据保存在内存中。但是,由于云功能正在从数据库中下载大量数据,我现在已经触发了本月超过 1.7 GB 的下载量,仅靠我自己进行测试。这超出了配额。
一定有我遗漏的东西;我想要的只是一些哈希图的永久内存存储。我想要的只是在通过请求调用函数时这些哈希图准备就绪。这似乎是一个简单的要求;为什么没有办法做到这一点?
【问题讨论】:
-
您在一天内问了 3 次同一个问题。我建议坚持一个问题并更新它,并随着更多数据的披露参与 cmets。要回答这个问题 - 如果向 Firebase 添加数据会导致您的应用每次都下载大量数据,那么您可能做错了。 childAdded 事件在这些情况下很有用。该事件仅向应用程序显示新添加的数据,然后您可以将其集成到内存数据集中。投票结束,因为这是一个多余的问题。
-
另外,如果你使用 singleEvent 实现一个观察者,那么你的数据只会被下载一次,不会再被下载。即使在 Firebase 中添加、更改或删除数据,应用也不会收到事件,直到下一次运行并调用 singleEvent。
标签: firebase firebase-realtime-database google-cloud-platform google-cloud-functions