我将Firebase用于iOS应用程序。如标题所示,我目前对keepSynced有问题。它不会立即同步数据。
例如,当我收到说已发布评论的推送通知时,用户打开应用程序,然后将他带到加载评论的帖子。现在,如果该应用程序不在后台,则必须在某些子项上调用.keepSynced。尽管此调用是在加载注释之前进行的,但仍然没有足够的时间,因此注释在本地加载,缺少最后一个。
当用户打开该应用程序并刷新该提要时,会发生同样的事情。第一次刷新是在本地进行的,缺少最新的帖子。几秒钟后,.keepSynced方法终于启动了,我可以查询在线数据库了。
我目前在appDelegate中调用.keepSynced:didFinishLaunchingWithOptions。在上述两种情况下,我都使用.observeSingleEventOfType。
我的问题是,是否有其他方法可以告诉Firebase使某些孩子始终保持同步?在数据库规则中,也许?
其他想法,建议表示赞赏。谢谢!
最佳答案
在节点上调用keepSynced(true)
可确保Firebase数据库客户端在与数据库服务器建立连接时将其同步。当没有这样的连接时,没有内置的API使节点保持同步。