java禁用Android上的Firebase脱机功能
我不熟悉Firebase数据库,但我知道Java是一名开发人员。我只想禁用Firebase数据库,以便在我的应用程序没有活动的Internet连接时获取数据
我的申请类别是:
public class MApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FireBaseConnectionClass.setFirebaseDataBaseConnection();
}
}
FireBaseConnectionClass类是:
public class FireBaseConnectionClass {
private static FirebaseDatabase firebaseDatabase = null;
public static void setFirebaseDataBaseConnection() {
MyMLogger.showMLog("version", "setting FB Connection:::", "indexactivity", "checkappversion");
if (firebaseDatabase == null) {
MyMLogger.showMLog("version", "connection was:::" + "null", "indexactivity", "checkappversion");
firebaseDatabase = FirebaseDatabase.getInstance();
firebaseDatabase.setPersistenceEnabled(false);
}//if ends
}
public static FirebaseDatabase getFirebaseDatabaseConnection() {
if (firebaseDatabase == null) {
setFirebaseDataBaseConnection();
}
return firebaseDatabase;
}
public static void onLineDataBase() {
if (firebaseDatabase != null) {
firebaseDatabase.goOnline();
}
}
public static void offLineDataBase() {
if (firebaseDatabase != null) {
firebaseDatabase.goOffline();
}
}
}
我刚刚从启动屏幕活动之后的活动中的数据库中获取应用程序版本
private void checkAppVersion() {
try {
//activity not running return
if (IndexActivity.this.isFinishing()) {
return;
}
//get the database instance
FireBaseConnectionClass.getFirebaseDatabaseConnection().getReference("app_version").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//check if data snapshot exists
if (dataSnapshot.exists()) {
appVersionFromDatabase = dataSnapshot.getValue().toString();
MyMLogger.showMLog("version", "version:::" + appVersionFromDatabase, "indexactivity", "checkappversion");
} else {
MyMLogger.showMLog("version", "snapshot not exists", "indexactivity", "checkappversion");
FireBaseConnectionClass.offLineDataBase();
}// if (dataSnapshot.exists()) ends
}//onDataChange ends
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
MyMLogger.showMLog("version", "error:::" + databaseError.toString(), "indexactivity", "checkappversion");
FireBaseConnectionClass.offLineDataBase();
}
});
} catch (Exception exp) {
MyMLogger.showMLog("version", "exception:::" + exp.toString(), "indexactivity", "checkappversion");
}
}
主要问题是,当我关闭internet时,checkAppVersion()方法会给出应用程序版本(可能来自缓存!)我不想要这个! 我也遵循了official documentation。 有人能告诉我为什么这种行为没有发生在我身上,因为我只想在我有活动的互联网连接时使用应用程序版本
提前谢谢
共 (0) 个答案