Filtern und Sortieren Sie mehrere Werte mit FB
Baue ich eine social-app mit FB. Ich Speichere Beiträge in FB wie diese:
posts: {
"postid": {
author: "userid"
text: "",
date: "timestamp"
category: "categoryid"
likes: 23
}
}
Jedem post, die zu einer Kategorie gehören, und es ist möglich wie Beiträge.
Nun, ich bin versucht zu zeigen, - Beiträge, die gehören zu einer bestimmten Kategorie, sortiert nach der Anzahl der likes. Es ist möglich, dass ich auch wollen zu beschränken, die nach Datum filtern, um nur die jüngsten, am meisten gefiel Beiträge in einer Kategorie. Wie kann ich dies tun?
FB Abfrage-Funktion scheint nicht die Unterstützung mehrerer Abfragen wie diese, die scheint seltsam...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nur eine bestellfunktion mit FB-Datenbank Abfragen, aber richtige Daten-Struktur, die Ihnen erlauben, um die Abfrage mehrere Felder.
In Ihrem Fall, die Sie bestellen möchten, indem Sie Kategorie. Anstatt die Kategorie als eine Eigenschaft, es kann als ein index unter
posts
:Nun können Sie eine Abfrage schreiben, um alle Beiträge unter eine bestimmte Kategorie.
Der obige code erstellt eine Referenz für die Beiträge von einer bestimmten Kategorie, und die Bestellungen nach dem Datum. Die mehrere Abfragen möglich ist, in der Daten Struktur. Die callback-Verschluss feuert off für jedes einzelne Element unter dem angegebenen Kategorie.
Wenn Sie möchten, um die Abfrage weiter, müssen Sie eine client-seitige Filterung der Daten.
/categoryPosts
und speichern Sie dann alle Beiträge inposts
. Es ist okay zum duplizieren der Daten führt zu schneller liest, und Sie können halten Sie es im Einklang mit client-side-fanout. firebase.com/blog/...