Antwort

1

Wenn App gestartet wird, können Sie mithilfe von https://www.firebase.com/docs/web/api/ondisconnect/remove.html sicherstellen, dass bestimmte Daten entfernt werden, wenn der Client offline geschaltet wird. Dann können Sie woanders sehen, ob diese Daten vorhanden sind (immer noch online) oder nicht (jetzt offline).

Diese Seite https://www.firebase.com/docs/web/api/ondisconnect/ besagt Folgendes

Die OnDisconnect Klasse, die Sie, wenn Sie Ihren Client die Verbindung trennt von den Servern Firebase zu schreiben oder zu löschen Daten ermöglicht. Diese Updates auftreten , ob Ihr Client sauber getrennt oder nicht, so können Sie sich auf Sie Daten zu bereinigen, selbst wenn eine Verbindung gelöscht wird oder ein Client abstürzt. Die OnDisconnect-Klasse wird am häufigsten verwendet, um Präsenz in Anwendungen zu verwalten, in denen es nützlich ist, festzustellen, wie viele Clients verbunden sind und wann andere Clients die Verbindung trennen. Weitere Informationen finden Sie unter Offline-Funktionen .

Nehmen wir an, Sie haben eine Liste von Online-Benutzern in Ihrem db. Etwas wie folgt aus:

onlineUsers: { 
    user1: true, 
    user23: true, 
    user100: true 
} 

Das Beispiel zeigt, dass die Benutzer user1, user23 und User100 online sind. Sagen wir user23 online ist und Sie wollen, dass die Feuerbasis db zu reflektieren, wenn dieser Benutzer online sind oder nicht ist, dies tun:

var disconnectRef = new Firebase('https://<YOUR-FIREBASE-APP>.firebaseio-demo.com/onlineUsers/user23'); 
disconnectRef.onDisconnect().remove(); 

Der obige Code entfernen nichts an der Ausführung. Es teilt dem Firebase-Server lediglich mit, onlineUsers/user23 zu entfernen, wenn der Client offline geschaltet wird.

Sobald das Client (sagen Android app/Gerät) offline geht, werden die Firebase-Server sicher, dass der neue Staat wird so sein:

onlineUsers: { 
    user1: true, 
    user100: true 
} 

Wie Sie, user23 mehr sehen kann, ist kein in der Liste vorhanden.

+0

Aber ich denke, das ist die "sichere Art, Dinge zu tun". Was passiert, wenn das Netzwerk plötzlich ausfällt? Wird dieser Event-Handler seine Aufgabe erfüllen? – roostaamir

+0

Auch ich denke, das ist für die Datenbankoperationen, mit denen ich nicht arbeite, aber danke noch einmal für Ihre Antwort – roostaamir

+0

Ja, es ist die sichere Sache zu tun. Auch bei Verbindungsunterbrechungen. Ich habe meine Antwort bearbeitet und weitere Informationen zur Verfügung gestellt. – Sten

Verwandte Themen