Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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_Firebase Storage - Fatal编程技术网

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

如何在Android中禁用Firebase缓存(持久性)?,android,firebase,firebase-realtime-database,firebase-storage,Android,Firebase,Firebase Realtime Database,Firebase Storage,重新启动应用程序后,Firebase正在加载本地缓存的数据。如何删除此本地缓存数据并仅检索新数据 我读到Firebase默认提供10Mb缓存。我认为如果我们能找到一种方法来禁用这个默认缓存,问题可能会得到解决 参考: 以下是重启代码 finish(); //System.exit(0); startActivity(new Intent(getApplicationContext(),GAME.class)); 下面是听众 final DatabaseReferenc

重新启动应用程序后,Firebase正在加载本地缓存的数据。如何删除此本地缓存数据并仅检索新数据

我读到Firebase默认提供10Mb缓存。我认为如果我们能找到一种方法来禁用这个默认缓存,问题可能会得到解决

参考:

以下是重启代码

    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
            }
        }
.....
也许问题是:

  • 要同步的节点必须是特定的
  • 同步必须在任何数据库事务之前完成,一个很好的方法是在应用程序类中完成
  • 要创建应用程序类,请创建一个扩展
    应用程序
    类的类,然后在清单中使用
    名称
    标记将其注册为自定义应用程序类

    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">
    
    
    
    我也遇到了同样的问题,但问题不是缓存的数据,而是同步不够具体。尝试改进“keepSynced(false);”并让我们看看这是否有效我尝试了LC.keepSynced(false);它也不起作用(每次同步都必须在执行任何数据库操作之前完成,最好的方法是在应用程序类中进行同步,这有什么帮助吗?我不明白,请发布示例代码语句好吗?我将如何访问AppCompatActivity?activity_main.xml?不必,这会在创建应用程序时发生,这是在创建任何活动之前。Dok在我的应用程序中插入了此代码。现在我应该在某个地方调用CustomApp,还是只运行代码?在清单中,通过使用“name”标记定义使用哪个应用程序类,如果没有,则将使用默认类是的,我这样做了,但它现在正在使用FirebaseDatabase.getInstance().setPersistenceEnabled(true);&FirebaseDatabase.getInstance().setPersistenceEnabled(false);