How to bypass the Firebase cache to refresh data (in Android app)?

后端 未结 7 1887
孤街浪徒
孤街浪徒 2020-11-30 21:48

On an Android application which must works offline most of the time I need, when it\'s online, to do some synchronous operations for i.e. :

User myUser =  My         


        
相关标签:
7条回答
  • 2020-11-30 22:48

    A workaround I discovered is using Firebase's runTransaction() method. This appears to always retrieve data from the server.

    String firebaseUrl = "/some/user/datapath/";
    final Firebase firebaseClient = new Firebase(firebaseUrl);
    
        // Use runTransaction to bypass cached DataSnapshot
        firebaseClient.runTransaction(new Transaction.Handler() {
            @Override
            public Transaction.Result doTransaction(MutableData mutableData) {
                // Return passed in data
                return Transaction.success(mutableData);
            }
    
            @Override
            public void onComplete(FirebaseError firebaseError, boolean success, DataSnapshot dataSnapshot) {
                if (firebaseError != null || !success || dataSnapshot == null) {
                  System.out.println("Failed to get DataSnapshot");
                } else {
                  System.out.println("Successfully get DataSnapshot");
                  //handle data here
                }
            }
        });
    
    0 讨论(0)
提交回复
热议问题