2016-04-27 5 views
0

Ich möchte mit Firebase eine App für Ticketkäufe erstellen. Ich stelle mir vor das Inventar der Tickets auf den Servern und Anforderungen zu speichern sein:Implementieren von Sperren und Freigeben von Firebase-Daten

  1. Benutzer zulassen Ticket zu reservieren, während die Zahlungsabwicklung (dh sperren das Ticket)
  2. das Ticket lösen nach einer gewissen Zeit, wenn nicht
  3. Prevent Dual Kauf gleichen Inventar Artikel gekauft

ich bin besorgt darüber, wie dies möglich wäre, ohne serverseitigen Code, wo die einzelnen Kunden die Sperren und Freigaben steuern. Ich nehme an, der Kunde kann verfolgen, wie lange es her ist, seit das Ticket reserviert wurde, und es dann freigeben. Was aber, wenn der Client die Verbindung trennt? Wäre es mir möglich, Sperren für Tickets mit .onDisconnect() zu lösen, wenn beispielsweise der Benutzer die Verbindung verliert?

+0

Während Firebase-Sicherheitsregeln einen langen Weg für die Implementierung eines Schließsystems einschlagen können, sollten Sie auch Ihr eigenes Backend in Ihrer Lösung überdenken - Sie sollten Ihrer Kundenseite nicht vertrauen, dass sie Zahlungen übernimmt , beispielsweise. Und deshalb ist diese Frage zu weit IMO. – vzsg

Antwort

0

Ja, Sie können. Fügen Sie eine .onDisconnect() hinzu, die die Sperre löscht, wenn der Benutzer die Verbindung verliert.

Das ist genau was .onDisconnect() tut, wird die Aktion auf der Serverseite ausgelöst, wenn die Client-Verbindung beendet wird.

Aber Sie könnten prüfen, was passiert, wenn der Client die Verbindung vorübergehend verliert, z. Wenn der Zug durch einen Tunnel fährt