Firebase没有';当脱机客户端恢复联机时,无法完全同步

Firebase没有';当脱机客户端恢复联机时,无法完全同步,firebase,reactjs,Firebase,Reactjs,当联机客户端(桌面)和脱机客户端(手机)都输入数据,并且手机重新联机时,手机在脱机期间不会收到桌面上发布的数据 要复制,请在空目录中运行firebase引导,输入应用程序的名称,然后选择react模板。然后执行firebase deploy和firebase open以访问桌面浏览器中的页面。然后访问手机浏览器中的同一页面 开始在桌面和手机浏览器的React+Plain Firebase窗格中交替输入数据。在桌面上输入“1”,在手机上输入“2”,在桌面上输入“3”,等等。到目前为止,该系列在两种

当联机客户端(桌面)和脱机客户端(手机)都输入数据,并且手机重新联机时,手机在脱机期间不会收到桌面上发布的数据

要复制,请在空目录中运行
firebase引导
,输入
应用程序的名称
,然后选择
react
模板。然后执行
firebase deploy
firebase open
以访问桌面浏览器中的页面。然后访问手机浏览器中的同一页面

开始在桌面和手机浏览器的
React+Plain Firebase
窗格中交替输入数据。在桌面上输入“1”,在手机上输入“2”,在桌面上输入“3”,等等。到目前为止,该系列在两种浏览器上都按预期显示
1 2 3
。然后将手机置于飞行模式,继续交替输入号码。现在,桌面只显示正在添加的奇数,而手机只显示偶数。这也是意料之中的

现在让手机重新联机。手机将其数据推送到firebase,偶数将显示在桌面上(尽管在
React+Plain firebase
窗格和
React+ReactFire
窗格中顺序不同)

但奇数数字不会显示在手机上,直到重新加载应用程序。这是预期的吗?当客户端联机时,有没有办法强制执行完全重新同步

更新:我在firebase离线使用中看到的其他问题是关于检测状态、用户身份验证或其他更复杂的场景。我的情况更简单。文件说:

重新建立连接后,我们将接收适当的事件集,以便客户机“跟踪”当前服务器状态,而无需编写任何自定义代码

对我来说,这意味着同步应该“正常工作”,而不需要应用程序“知道”它是否在线,或者在它上线时做任何特殊的事情


我还假设firebase离线数据存储是持久的,但加藤最近对的评论表明它不是。因此,我猜答案是Firebase的离线存储实施不完整,其局限性也没有很好的记录。

请查看加藤在这个问题上留下的评论:@sinanbolle-这个问题是关于一个更复杂的检测存在的场景。请看我在问题中添加的说明。我已经完成了您的复制步骤,但在我这方面似乎效果不错。我在电脑上贴了1个,在电话上贴了2个,在电脑上贴了3个,把电话切换到飞行模式,贴了4个,把电话恢复到在线状态,4个推得很好。很有趣。。。我又做了一次,但这次不行。所以这里有更有趣的东西。如果您首先在手机上加载应用程序,不输入任何内容,将手机脱机,并在计算机上输入一组数据,然后将手机重新联机,则手机会进行更改。但是,如果您在手机上加载应用程序,输入一些内容,将其脱机,在计算机上输入一些内容,然后将手机重新联机,则不会从计算机中提取最新数据。