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