Почему Firebase останавливает синхронизацию, когда локальная дата устройства изменена явно? - программирование
Подтвердить что ты не робот

Почему Firebase останавливает синхронизацию, когда локальная дата устройства изменена явно?

Когда я меняю настройку "Локальная дата телефона" на 1 или более месяцев, а затем после перезагрузки моего приложения Android, которое использует базу данных реального времени Firebase, оно не загружает данные из базы данных и не загружается навсегда. Почему это происходит? Проверяет ли Firebase локальное время устройства перед извлечением данных?

Это onCreate() MainActivity приложения для Android

После изменения даты (на 10 или более дней) в настройках, а затем закрытия и повторного открытия приложения индикатор выполнения никогда не становится невидимым. Не onCancelled функция onCancelled.

    final ProgressBar progressBar = findViewById(R.id.progress_bar);
    final TextView textView = findViewById(R.id.textView);
    progressBar.setVisibility(View.VISIBLE);

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("message");
    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String value = dataSnapshot.getValue(String.class);
            textView.setText(value);
            progressBar.setVisibility(View.INVISIBLE);
        }

        @Override
        public void onCancelled(DatabaseError error) {
            progressBar.setVisibility(View.INVISIBLE);
        }
    });'

Уровень уровня приложения

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.akzarma.testapplication"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.google.firebase:firebase-database:11.8.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

apply plugin: 'com.google.gms.google-services'

Ниже приведена ссылка Github repistory для этого проекта, это всего лишь пример приложения, которое извлекает данные из базы данных firebase realtime: https://github.com/akzarma/testApp

4b9b3361

Ответ 1

Как упоминалось в комментариях, наиболее вероятная причина связана с SSL. SSL не работает с неправильными датами, поэтому он не может безопасно подключиться к Firebase. Один из возможных способов заключается в том, чтобы подключиться к Firebase через http, но 1) Он не защищен 2) Я не уверен, что он все еще поддерживается.