有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案