android–Firebase数据库无法离线加载数据

android–Firebase数据库无法离线加载数据,第1张

概述我有一个在离线模式下使用Firebase数据库的应用程序(通过调用FirebaseDatabase.getInstance().setPersistenceEnabled(true)).在数据库中,只有当其他节点中的值设置为true时,用户才能访问该节点,规则如下所示:{"rules":{".write":"auth!=null",".read":"false",

我有一个在离线模式下使用Firebase数据库的应用程序(通过调用FirebaseDatabase.getInstance().setPersistenceEnabled(true)).在数据库中,只有当其他节点中的值设置为true时,用户才能访问该节点,规则如下所示:

{  "rules": {    ".write": "auth != null",    ".read": "false",    "mynode": {      "$dataID": {        ".read": "auth != null && root.child('userAccessNode/' + auth.uID + '/' + $dataID).val() == true"      }    }  }}

当设备连接到互联网时,它可以正常工作.但是,当我在设备上转动飞行模式时,回调addValueEventListener(ValueEventListener)不会返回任何内容 – 也不会返回错误,而不是值,只是挂起,直到我再次打开Internet连接.

我确保在脱机之前检索了两个节点,因此我确信有问题的节点和保存访问信息的节点已被缓存.

对于具有简单规则的其他节点,例如(auth!= null),离线模式工作正常,但在这种情况下不行.

我做错了吗?知道我怎么能做这个工作?离线时规则(依赖于其他节点)评估如何工作?

解决方法:

Firebase实时数据库安全规则始终在服务器端进行评估.这可以防止恶意客户端绕过这些规则.

总结

以上是内存溢出为你收集整理的android – Firebase数据库无法离线加载数据全部内容,希望文章能够帮你解决android – Firebase数据库无法离线加载数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1117375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存