you have to call FirebaseDatabase.getInstance().setPersistenceEnabled(true);
in every where that you want your retrieved data to be stored locally. Therefore, you should create a helper class like this:
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class FirebaseUtils {
private static DatabaseReference mDatabaseRef;
private static FirebaseDatabase database;
public static DatabaseReference getDatabaseRef() {
if (mDatabaseRef == null) {
getDatabase();
mDatabaseRef = database.getReference();
// ...
}
return mDatabaseRef;
}
public static FirebaseDatabase getDatabase() {
if (database == null) {
database = FirebaseDatabase.getInstance();
database.setPersistenceEnabled(true);
// ...
}
return database;
}
}
Then, in your activity and fragment and other places where you want to do your database stuff, you initialize the DatabaseReference object like this:
private DatabaseReference mDatabase;
private DatabaseReference mPlaceRef;
....
mDatabase = FirebaseUtils.getDatabaseRef();
mPlaceRef = mDatabase .child("places");
...