gpt4 book ai didi

android - 为什么 Firebase 在明确更改设备的本地日期时停止同步?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:49:38 24 4
gpt4 key购买 nike

当我将手机的本地日期设置更改 1 个月或更长时间,然后在重新启动使用 Firebase 实时数据库的 android 应用程序后,它不会从数据库加载数据,而是永远加载。为什么会这样? Firebase 在获取数据之前是否检查设备的本地时间?

这是Android App的onCreate() MainActivity

在设置中更改日期(10 天或更多天)然后关闭并重新打开应用程序后,进度条永远不会消失。甚至 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);
}
});`

应用级gradle

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 实时数据库获取数据的示例应用程序。:https://github.com/akzarma/testApp

最佳答案

如评论中所述,最可能的原因与 SSL 有关。 SSL 不能很好地处理不正确的日期,因此它无法安全地连接到 Firebase。解决此问题的一种可能方法是通过 http 连接到 Firebase,但 1) 它不安全 2) 我不确定它是否仍受支持。

关于android - 为什么 Firebase 在明确更改设备的本地日期时停止同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51573439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com