Firebase:设置孙子时,服务器上的优先级设置为null,但客户端上的优先级设置为null
要复制,请签出。首先单击“设置子对象和孙子对象”,将子对象设置为优先级,然后在其中设置孙子对象。然后单击“显示本地值”,您将看到子级似乎仍然具有123的优先级。单击该按钮任意次数-优先级始终返回为123 一旦您确信本地优先级为123,请刷新整个页面。您会失望地看到优先级现在为空Firebase:设置孙子时,服务器上的优先级设置为null,但客户端上的优先级设置为null,firebase,Firebase,要复制,请签出。首先单击“设置子对象和孙子对象”,将子对象设置为优先级,然后在其中设置孙子对象。然后单击“显示本地值”,您将看到子级似乎仍然具有123的优先级。单击该按钮任意次数-优先级始终返回为123 一旦您确信本地优先级为123,请刷新整个页面。您会失望地看到优先级现在为空 我可以相信这是一个并发性问题,set的某些影响以不同的顺序发生。设置子级是否会清除父级优先级的预期行为?感谢您提供的简单测试用例!这确实是一个错误。客户端和服务器处理这种情况的方式不同,这就是为什么您会看到这种不一致的行
我可以相信这是一个并发性问题,
set
的某些影响以不同的顺序发生。设置子级是否会清除父级优先级的预期行为?感谢您提供的简单测试用例!这确实是一个错误。客户端和服务器处理这种情况的方式不同,这就是为什么您会看到这种不一致的行为
请注意,只有在“setWithPriority”一个基元值,然后在树中写得更深时(这会删除该基元值),才会发生这种情况
更新:此问题现已修复 啊,谢谢你的提醒-这将帮助我在我的项目中继续前进,首先设置为
{“blah”:“blah”}
或其他什么,直到实际的修复程序进入。顺便说一句,到目前为止,我都很喜欢Firebase!你会对我的GWT包装感兴趣吗?这似乎与我们喜欢你的GWT包装有关。您愿意在github上开放源代码吗?另外,我不知道您为什么需要设置“初始”值。在向其子级写入之前,不需要创建路径。如果您只需写入/a/b/c/d,所有中间节点都会自动存在。我想不出一个好的理由来写一个值,然后立即写一个更深的值……现在这个问题已经解决了。您可以再次尝试JSFIDLE,您应该看到子优先级仍然为123。再次感谢您提供的简单测试用例!