Firebase的用例与大多数用户略有不同。我们不会专门为我们的后端使用FB。我们有一个处理关系和所有数据的大型MariaDB服务器。
我们使用FB的目标是允许iOS设备上的客户端提供其特定数据。我们需要加载一次数据,然后监听对这些特定数据的更改。以下是对其工作原理的概述:
在普通用户流中,我们在屏幕上推送其他ViewControllers。问题是,一旦加载了主ViewController,FIRDataEventTypeChildAdded将再次为每条记录触发。
问题:
提前致谢。
答案 0 :(得分:0)
Firebase参考侦听器连接到服务器一次,并保持连接,直到该查询关闭。只要被侦听的引用在内存中,就只有一个连接到数据库。一旦发生这种连接,所有数据将作为子添加数据再次通过。
这里的问题不在于Firebase,而在于您的应用程序不断地将侦听器读取到引用,每次都会从网络中重新下载数据。
所以对你的第一个问题,是的,它是从网络重新下载。对于您的第二个,您只需要确保Firebase查询永远不会留下内存。这可以通过查询全局范围来完成,或者只是在视图控制器退出范围时不关闭查询(然后您需要确保在后续加载时不读取多个查询)。