Ich habe eine Android-App geschrieben, die anonyme Firebase-Authentifizierung verwendet und von einem Vordergrunddienst in die Firebase-Datenbank schreibt. Ich verwende onDisconnect().removeValue()
, um Daten zu bereinigen, die von meiner App erstellt werden, wenn der Websocket geschlossen wird. Wenn ein Nutzer aktiv mit der App kommuniziert, wird der Anruf onDisconnect()
wie erwartet ausgelöst (dh, meine Sicherheitsregeln sind OK). Wenn jedoch der Vordergrunddienst für eine lange Zeitperiode (z. B. über Nacht, Bildschirm wird ausgeschaltet usw.) laufen gelassen wird, wird der Anruf niemals erneut ausgelöst. Die App funktioniert weiterhin nach dem Aufwachen (Kommunikation mit dem Firebase-Server usw.), aber wenn es Zeit ist, die App zu schließen (nach einem Zeitraum von Leerlaufzeit), scheint der onDisconnect()
Aufruf irgendwie verloren zu sein.Wie man Firebase von einem Vordergrunddienst in Android
Ich habe gelesen, dass anonyme Authentifizierungssitzungen stündlich vom Firebase SDK aktualisiert werden. Ist es möglich, dass dies in der Aktivität geschieht (und vom Betriebssystem beendet wird, aber der Vordergrund-Dienst am Leben gehalten wird), wodurch der Server den Rückruf an onDisconnect
verwirft? Wenn ja, kann diese Funktionalität im Vordergrund-Service erhalten bleiben?
Danke @Aubtin. Es ist gut zu wissen, dass es kein Problem mit meinem Code ist und dass das Firebase-Team das Problem kennt. –