如何在Android中禁用Firebase缓存(持久性)?

时间:2017-09-09 13:12:02

标签: android firebase firebase-realtime-database firebase-storage

重新启动应用程序后,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
            }
        }
.....

1 个答案:

答案 0 :(得分:1)

也许问题是:

  1. 要同步的节点必须是特定的
  2. 必须在任何数据库事务之前完成同步,这是在Application类
  3. 中执行此操作的好方法

    要创建Application类,请创建一个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">