在我的应用中,我为设置了观察者childAdded
,childDeleted
并childModified
在感兴趣的Firebase数据库节点上设置了观察者,以对其进行跟踪并相应地修改我的CoreData
设备数据库。我只是意识到,如果achildDeleted
或childModified
发生在设备不在线时,则当设备再次在线时不会收到这些事件的通知。因为这是正常的预期行为,所以我想到了一种解决方法:当我在Firebase节点上触发删除条目时,我将创建相应“已删除”节点的条目。因此,childAdded
当设备重新联机并执行childDeleted
观察者现在执行的逻辑时,将触发事件。这样我就不会观察到任何childDeleted
事件。所以我的问题是:我在滥用Firebase观察者吗?childDeleted
设备恢复在线状态时仍应进行通信,还是这种情况实际上是应该工作的方式?在这种情况下,您实施了哪种解决方案?
Firebase实时数据库将服务器上的数据状态与任何连接的客户端同步。每当客户端(重新)连接时,Firebase都会确保该客户端具有数据的当前状态。如您所知,Firebase显式不同步状态更改。
如果要同步状态更改,则应将这些状态更改准确地存储在数据库中。因为那样,这些更改便成为Firebase同步的数据。
因此,您的解决方案很好,并且实际上是处理此要求的惯用方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句