如何在Android中禁用Firebase缓存(持久性)?
重新启动应用程序后,Firebase正在加载本地缓存的数据。我怎样才能删除这个本地缓存数据&只检索新鲜数据?如何在Android中禁用Firebase缓存(持久性)?
我读过Firebase提供默认缓存10Mb。我想如果我们能找到一种方法来禁用这个默认缓存,那么问题可能就解决了。
参考:https://firebase.google.com/docs/database/android/offline-capabilities
以下是重启代码
finish();
//System.exit(0);
startActivity(new Intent(getApplicationContext(),GAME.class));
以下是监听
final DatabaseReference LC = FirebaseDatabase.getInstance().getReference("XYZ");
LC.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) {
if(dataSnapshot.getKey().equals("XX")) {
String value = dataSnapshot.getValue(String.class);
XX= value;
Toast.makeText(GAME.this,"XX:"+XX, Toast.LENGTH_SHORT).show();
if(XX.equals("Match"))
tableManager(0); //new Table
else
tableManager(1); //old Table
}
}
.....
也许问题是:
- 节点是同步必须具体
- 的同步必须在任何数据库事务之前进行,这样做的好方法是在应用程序类
用于创建应用程序类,创建一个类,extends
的application
类,然后在Manifest使用name
标签将其注册为您的自定义应用程序类。
public class CustomApp extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
//Here keep everything sync with the keepSynced(true) method
}
}
而且在清单
<application
android:name=".some.package.CustomApp">
我将如何访问AppCompatActivity?activity_main.xml? –
您不必在创建应用程序时发生这种情况,这是创建任何活动之前 – cutiko
Ok将此代码插入到我的应用程序中。 CustomApp在某处或只是运行代码? –
我面临同样的问题,但问题是没有缓存的数据,是同步不够具体。尝试改进“keepSynced(false)”;“让我们看看是否可行 – cutiko
我试过LC.keepSynced(false);它也不起作用。 :( –
每次同步都必须在执行任何数据库操作之前完成,最好的办法就是做到这一点应用程序类,这有助于以任何方式? – cutiko