Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根本不在Android中缓存Firebase数据库的特定部分_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

根本不在Android中缓存Firebase数据库的特定部分

根本不在Android中缓存Firebase数据库的特定部分,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,在我的用例中,我根本不想在我的Android应用程序中缓存Firebase数据库的特定部分 我试过以下几件事: 1) 此更改是在我的应用程序的应用程序类中进行的 FirebaseDatabase.getInstance().setPersistenceEnabled(false); FirebaseDatabase.getInstance().getReference().child("point-To-Place-I-don't-wanna-cache").keepSynced(false);

在我的用例中,我根本不想在我的Android应用程序中缓存Firebase数据库的特定部分

我试过以下几件事:

1) 此更改是在我的应用程序的应用程序类中进行的

FirebaseDatabase.getInstance().setPersistenceEnabled(false);
FirebaseDatabase.getInstance().getReference().child("point-To-Place-I-don't-wanna-cache").keepSynced(false);
2) 已删除
FirebaseDatabase.getInstance().setPersistenceEnabled()来自应用程序类。
放置
FirebaseDatabase.getInstance().getReference().child(“点对点I-don-don-want-cache”).keepSynced(false)

3) 以上命令的更多组合


似乎什么都不起作用。

当您调用
setPersistenceEnabled(true)
时,客户端最近收到的所有数据都会缓存到磁盘上


无法从磁盘持久性中排除某些节点。

很遗憾,这是不可能的。但这听起来像是一场灾难。通过从磁盘缓存中排除某个部分,您试图实现什么目的?也许还有另一种方法可以实现同样的目标,但我在代码中提到了setPersistenceEnabled(false)。这不应该缓存任何东西,我仍然可以接受。但数据仍在被缓存,这似乎有问题。我从来没有听说过当缓存被禁用时(默认情况下),数据会被缓存到磁盘上。您是否在某个时候启用了磁盘缓存?如果是这样,磁盘缓存可能仍然包含来自该时间的数据。卸载/重新安装应用程序以摆脱此问题。如果这没有帮助:您是如何确定正在缓存数据的?是的,我确实在某个时候启用了磁盘缓存。我确保每次测试时都卸载了该应用程序。我通过转到:App Info->Storage来检查它,并检查所使用的缓存空间(结果是非零的,有时是两位数)。此外,如果我从最近的任务中删除应用程序,关闭互联网并启动应用程序,数据将加载,我的视图将填充。这就是我知道数据是在本地缓存的原因@Frank非零空间使应用程序似乎没有被完全删除。我不确定这是怎么发生的,但如果剩下的文件确实是Firebase客户端的磁盘缓存,它将解释您看到的行为。但我不确定客户端是否应该加载磁盘缓存:还有@Frank,当我尝试放置FirebaseDatabase.getInstance().setPersistenceCacheSizeBytes(0)时,应用程序在启动时立即停止。