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