2017-03-05 3 views
0

Ich habe ein großes Problem mit Firebase. Ich habe vor langer Zeit in meinem App-Service Realtime Firebase-Datenbank implementiert. Alles hat gut funktioniert. Für einige Wochen hatte ich jedoch einige Probleme. Wenn sich die App im Hintergrund befindet und für einige Zeit dort verbleibt, wird Firebase offline geschaltet und der Echtzeitdatenbankdienst funktioniert nicht ordnungsgemäß. Ich schaute im Internet nach und sah, dass es viele Probleme mit diesem Ding gab, aber ich habe keine Lösung für mich gefunden. Auch bekomme ich folgende Fehlermeldung:Firebase-Echtzeitdatenbank funktioniert nicht, wenn die App nach dem Hintergrund erneut gestartet wird

W/PersistentConnection: pc_0 - Provided authentication credentials are invalid. This usually indicates your FirebaseApp instance was not initialized correctly. Make sure your google-services.json file has the correct firebase_url and api_key. You can re-download google-services.json from https://console.firebase.google.com/. 

Natürlich habe ich versucht, neu laden Sie die JSON-Datei und ich habe auch überprüft alle Schlüssel. ist ein Fehler in der Datenbank

Dies macht meine Anwendung unbrauchbar. Ich versuchte, ein Service-Konto zu erstellen, indem Sie diese https://itayhauptman.wordpress.com/2016/10/06/firebase-firebase-warning-provided-authentication-credentials-are-invalid-this-usually-indicates-your-firebaseapp-instance-was-not-initialized-correctly/ Anleitung,

Ich versuchte die solzuione in dieser Firebase for Android - W/PersistentConnection: pc_0 - Provided authentication credentials are invalid Frage vorgeschlagen, versuchte ich meinen Code für Fehler zu straffen. All diese Aktionen lösen das Problem nicht. Das letzte, was ich tun werde, ist eine neue Anwendung in der Firebase-Konsole zu erstellen.

Bevor Sie dies tun, hat jemand eine Lösung? Ich bin wirklich verzweifelt für dieses Ding. Vielen Dank

Antwort

1

Android wird Ihre Firebase App im Hintergrund nicht ständig ausführen. Android kann Ihre Prozesse und Dienste im Ruhezustand oder "Dösen" beenden. Sie können Ihre App aufwecken und bei Bedarf eine Synchronisierung durchführen, indem Sie AlarmManager verwenden.

Wenn Ihre Synchronisierung ein Ereignis auslöst, richten Sie firebase cloud messaging ein und führen Sie die Synchronisierung durch, wenn eine neue Nachricht eintrifft.

Das Ausführen Ihrer App im Hintergrund mit einer Live-Verbindung zu Ihrem Back-End ist eine sehr schlechte Idee für die Akku-Optimierung.

EDIT:

Wenn Sie den Hintergrunddienst in einem anderen Android-Prozess ausgeführt werden, müssen Sie Firebase wieder initialisieren durch FirebaseApp.initializeApp(context); Entweder in der Application-Klasse oder dem Dienst Klasse aufrufen; vor irgendwelchen Verwendungen.

+0

Nein, ich möchte nicht, dass der Firebase-Dienst auch im Hintergrund fortgesetzt wird. Meine Fallstudie ist nach dem Hintergrund. Wenn die Anwendung reaktiviert wird, ist der Dienst so, als wäre Firebase offline und es gibt keine Möglichkeit, ihn zu reaktivieren, wenn Sie sich nicht erneut anmelden. Quidni Ich sollte mich nur einloggen und jedes Mal die Anwendung neu starten. Ich hoffe, ich erklärte – hulon

+0

'FirebaseAuth' soll die Sitzung und Authentifizierung beibehalten. Sie sollten sich nicht erneut anmelden müssen. –

+0

ja, aber die Echtzeit-Datenbank funktioniert nicht – hulon

Verwandte Themen