Was ist der effizienteste Weg, um eine Stapelanforderung an eine Firebase-Datenbank zu senden, die auf einem Array bekannter Schlüssel basiert?

8

Ich brauche eine Lösung, die einen Aufruf der Firebase-DB-API für mehrere Elemente basierend auf Schlüsseln ermöglicht und die Daten ( untergeordneten Elemente ) dieser Schlüssel zurückgibt ( in einer Antwort ).

Da ich nicht brauche, dass Daten in Echtzeit kommen, eine Art von Standard-REST-Aufruf einmal gemacht ( anstatt ein Firebase DB-Listener ), ich denke, es wäre ideal.

>

Die App hätte noch keine andere Listener- und WebSocket-Verbindung geöffnet. Ich habe jedoch die API-Dokumentation von Firebase durchgesehen und es sieht nicht so aus, als ob es eine Möglichkeit dafür gibt.

Die meisten Antworten, die ich gesehen habe, schlagen immer vor, einen zusammengesetzten Schlüssel / Index irgendeiner Art zu erstellen und mit dem zusammengesetzten Schlüssel entsprechend zu filtern, aber das funktioniert nur für die Suche durch einen Bereich. Oder sie schlagen vor, nur die Daten zu verschachteln und sich keine Gedanken über Redundanz und Speicherplatz zu machen ( und es ist schneller ), anstatt zugehörige Daten über Fremdschlüssel abzurufen.

Das Problem ist jedoch, dass ich Geofire verwende und seine Abfragemethode nur die Schlüssel der Elemente zurückgibt, nicht die Daten der Elemente. Alle Dokumente und vorherigen Antworten würden vorschlagen, Daten entweder über das Echtzeit-SDK abzurufen, was ich mit einmal Methode oder machen Sie einen REST-Aufruf für alle Elemente und filtern Sie mit den orderBy , startAt , endAt params und filtern Sie lokal mit den Schlüsseln, die ich brauche.

Das könnte funktionieren, aber der potenzielle Mehraufwand beim Abrufen einer Menge von Elementen, die ich nicht nur lokal filtern muss, scheint verschwenderisch zu sein. Der Ansatz, der den once Listener verwendet, scheint auch verschwenderisch zu sein, da es sich um einen Server-Roundtrip für jeden Elementschlüssel handelt. Dieser Ansatz wird in diesem ziemlich guten post , aber gemäß dieser Erklärung macht es immer noch eine Rundreise für jedes Element (, auch wenn es asynchron und über die gleiche Verbindung ist).

Diese arme Seele fragte eine ähnliche Frage nach einer Frage , hat aber nicht viele hilfreiche Antworten erhalten (, die wirklich die Kosten für die Erstellung von n -Anzahl von Serveranforderungen berücksichtigen).

Könnte jemand ein für allemal die Ansätze erklären, wie das gemacht werden könnte und die Vor- / Nachteile? Danke.

    
caveman39 20.09.2016, 18:49
quelle

0 Antworten