Entwerfen eines Firebase-basierten skalierbaren Feed-Modells
Frage:
Wie erstelle ich ein soziales Netzwerk "feed" mit Firebase als Backend, das skaliert?
Mögliche Antworten
"MVP" -Lösung ist das Entwerfen einesfeeds
root child, eins für jeden Benutzer, und füge jeden neuen Beitrag des verfolgten Benutzers in die Feeds aller Follower ein.
users
user1
name: bob
user2
name: alice
follows:
user1: true
posts
post1
author: user1
text: 'Hi there'
feeds
user2
post1: true
Dies funktioniert gut und wird imFirefeed
project. Aber es lässt sich nicht gut skalieren: Wenn Katy Perry etwas posten will, muss ihr Handy an Millionen von Feeds schreiben.
Hence die Lösung berichtet indiese SO Frage, um diesen Vorgang an einen serverbasierten Prozess zu delegieren.
Mein Problem ist, dass Firebase eine "No-Backend" -Lösung ist, und dies ist der Hauptgrund, warum ich sie verwende. Daher möchte ich sicherstellen, dass es absolut keine Chance gibt, diese Funktion ohne einen Server zu implementieren.
Was ist, wenn dasfeeds
child ist im obigen Schema entfernt?
Dann mach das:
baseRef.child('posts')
.orderBy('author')
.whereIn(baseRef.child('users/user2/follows').keys())
Unglücklicherweise,whereIn
existiert weder in der Firebase-API noch in Unterabfragen:
Ist eine andere Modellstruktur ohne Server möglich?
Vielen Dan