Ich habe (etwas) große Liste von Witzen in meiner Firebase-Datenbank wie im Bild unten.Firebase Datenbank Datenstruktur mit Firebase Authentifizierung Benutzer
I zeigt sie in einer Liste in meinem Android-App so etwas wie ein Feed. Ich habe auch die Möglichkeit eingeführt, mich mit der Firebase-Authentifizierung anzumelden, und jetzt möchte ich Optionen für angemeldete Benutzer hinzufügen, um Witze zu mögen (dis) zu mögen und sie zu Favoriten hinzuzufügen (Favoriten sollen wie private Lesezeichen sein). Ich wanderte, wie ich meine Daten strukturieren könnte, und ich habe zwei Vorschläge:
Hinzufügen neuer Wurzelknoten „userJokes“ mit Kind Knoten, die Benutzer-UID von Firebase Authentication genannt. Jeder UID-Kindknoten sollte eine Kopie jedes Witzes vom "Scherz" -Knoten mit zusätzlichen booleschen Werten haben, die (un) ähnliche und favorisierte Zustände darstellen.
Eine andere Lösung ist es, jeden Benutzer UID zu einem Witz ein Benutzer (dis) gefällt oder fügt Favoriten hinzuzufügen.
Erste Lösung ist logisch, aber wie könnte ich zähle Anzahl von Vorlieben und Abneigungen, wenn ich Strukturdaten auf diese Weise? Und was ist der beste Weg, um jeden Witz vom "Scherz" -Knoten zum "Benutzer" -Knoten für jeden Benutzer zu kopieren, der im Feed angezeigt wird? Zweitens ist das unpraktisch, da ich während des Abrufens von Witzen Informationen über jeden Benutzer erhalten kann, der die Favoriten entfernt oder hinzugefügt hat, und das ist nicht das, was ich brauche. Welche Lösung ist besser? Gibt es noch andere? Ist es OK, der Datenbank in der Firebase-Datenbank eine Benutzer-UID aus der Firebase-Authentifizierung hinzuzufügen?
Ich habe vielleicht den Punkt in meiner Frage verpasst. Ich möchte Witze in einer Liste wie einen Feed in jeder sozialen App zeigen. Während ich Witze zeige, möchte ich auch sofort geeignete Symbole für Likes, Abneigungen und Favoriten zeigen, je nachdem, was der Benutzer bereits getan hat. Genau wie Instagram Feed zeigt rotes Herz auf Bilder, die bereits gemocht wurden. Ich möchte also, dass diese Daten bereits vorhanden sind, ohne eine neue Abfrage durchführen zu müssen. Aus diesem Grund schlug ich die erste Lösung vor, bei der ich jeden Witz unter dem Benutzer-UID-Schlüssel mit zusätzlichen Informationen speichern würde, die Vorlieben, Abneigungen und Favoriten darstellen. – lagoman
Ich habe meine Antwort bearbeitet, hoffe, diesmal habe ich es richtig verstanden: D – koceeng