在测试/调试时,我注意到当setValue()某些数据离线时,onChildAdded()会在我的侦听器上触发。 是否可以配置监听器,使其仅触发onChildAdded,如果子级确实已添加到数据库中?
谢谢:)
答案 0 :(得分:1)
this blog post of mine中解释了您所看到的行为,并对违反安全规则的行为做了一些补充说明。对Firebase实时数据库的更改将在本地,立即反映并排队等待在服务器上执行,并在设备的互联网连接允许时完成。
您的代码不应该担心设备是在线还是离线。它应该只是读取和写入数据库,并假设所有数据将尽快同步。除非你想通过REST interface进行读写,否则你在Android / java中确实没有其他选择。这样效率和方便性都低得多,并且没有考虑到当前经过身份验证的用户。