Nach der Aktualisierung meiner Firebase-SDK-Projekte bemerkte ich, dass meine App regelmäßig die Verbindung zur Firebase-Datenbank verliert. Die Zeit, die für die Trennung benötigt wird, reicht von ein paar Minuten bis etwas über eine Stunde. Sobald die Verbindung getrennt wurde, wurde die Verbindung nicht wiederhergestellt, bis ich die Apps-Daten entweder abgemeldet oder gelöscht habe.Die Verbindung mit der Firebase-Datenbank wurde nach dem Update auf das neue SDK verloren
Auch kurz bevor ich verlieren Verbindung, einen Eintrag in den Log-Staaten, die mein Auth-Token abgelaufen ist:
PersistentConnection: pc_0 - Auth-Token widerrufen: (. Auth-Token abgelaufen ist) expired_token
FYI, ich benutze Twitter und Facebook für meine Authentifizierung und nicht solche Probleme mit dem vorherigen Firebase SDK.
Ich erstellte ein neues Projekt (mit einfacher Auth und Echtzeit-Datenbank), um zu sehen, ob das Problem bestehen bleibt und es tut. Ich habe Schnipsel dieses neue Projekt angehängt:
Die build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.sample.gideon.test"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.facebook.android:facebook-android-sdk:4.12.0'
compile 'com.google.firebase:firebase-database:9.0.0'
compile 'com.google.firebase:firebase-auth:9.0.0'
compile 'com.android.support:design:23.4.0'
}
apply plugin: 'com.google.gms.google-services'
Die Authentifizierungs-Aktivität folgt der Feuerbasis Facebook Login Führung, die in der Tat erfolgreich sich der Benutzer anmeldet und sendet sie an die MainActivity, die dann die Datenbankverbindung überwacht den folgenden Code:
MainActivity
DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
System.out.println("connected");
} else {
System.out.println("not connected");
}
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
}
});
Würde jemand wissen, was die App verursacht, Verbindung zu verlieren? Bisher wurde der Fehler in 2 verschiedenen Projekten mit 2 Auth-Providern (Twitter und Facebook) und erst nach dem Update auf den neuen Firebase festgestellt.
Hallo Herren! Wir schauen uns das an! Sieht so aus, als würde dies am besten verfolgt werden, indem ein Fehler an [support] (https://firebase.google.com/support/) gesendet wird. – Kato
@Kato Danke. Ich werde einen Bericht einreichen und diese Seite als Referenz beifügen. –
Ich kann es bestätigen mit E-Mail/Passwort-Authentifizierung mit Firebase - *: 9.0.0. Und auch mit Firebase-Server-SDK: 3.0.0, in diesem Fall folgt die Authentifizierung der Datei serviceAccountCredentials.json. In beiden Fällen nach einer Pause (einige Stunden) zeigen die Protokolle mehrere Nachrichten als: "PersistentConnection ...". Was seltsam ist, weil ich auf dem Server nicht einmal Persistenz aktiviere. – rmarau