2017-10-14 2 views
1

Eine Frage, wie kann ich dies Abfragen?Firebase-Abfrage in Knoten

Schema

-|conversations 
-|$uid 
    -|fromID 
     -|message 
      name: string 
      date: date 
      body: string 
      like: boolea 

Wenn der Benutzer den Sender der Nachricht ist, sind die Anhänger alle Sammlungen in conversations/$uid und die gefolgt Benutzer sind in conversations/ANYTHING/$uid.

kann ich die Anhänger für diese Weise auflisten this.followers = this.af.database.list(conversations/${this.currentAuth.uid});

Aber, und die anschließend Benutzer?

dieses Diagramm ein In besser enter image description here

+0

fromID ist die ID der folgenden Benutzer? – Wandrille

+0

In einem Benutzer von ID ist ein Follower, aber der gleiche Benutzer fügen Sie Ihren Schlüssel in einen anderen Benutzer in fromID dieser Benutzer ist ein gefolgt von dem anderen Benutzer –

Antwort

0

Die Lösung war zwei Knoten hinzufügen. Follower und folgte in jedem Profil, um alle Schlüssel zu speichern.

1

erklären Also, mit database.list, Sie eine Reihe von Nachrichten zu bekommen.

Für jede Nachricht in der Liste haben Sie Metadaten, die hinzugefügt werden.

Sie den Schlüssel Ihrer Nachricht erhalten können (so die gefolgt Benutzer-ID) mit dem Schlüssel: "$key"

Beispiel:

const message = this.af.database.list(conversations/${this.currentAuth.uid}); 

message[0].$key geben Ihnen die user_id des gefolgt Benutzer.

EDIT 1:

Ich verstehe nicht wirklich, was Sie zu tun versuchen. Aber was Sie im Kommentar vorschlagen wird:

If you use Lodash:

dies wird Ihnen alle Gespräche mit this.currentAuth.uid als AbsenderID:

_.filter(
    this.af.database.list(conversations), 
    function (o) => { 
     return Object.keys(o).indexOf(this.currentAuth.uid) != -1 
    } 

)

+0

mmm Ich weiß nicht, ob dies funktioniert. Im Schema Wenn ich 'const message = this.af.database.list (conversations/$ {this.currentAuth.uid}) verwende;' Erhalte ich alle Konversationen des Benutzers 'this.currentAuth.uid' und wenn Du rufst 'message [0]. $ key' Sie erhalten die - | fromID und das ist einer Ihrer Follower, die nicht verfolgt werden. Die Abfrage für eine Folge ist vielleicht für diesen Weg: Ich brauche finden, wie oft 'currentAuth.uid' in den Knoten Konversationen als von ID param –

+0

existieren Wenn Sie nach den Gesprächen des aktuellen Benutzers fragen, erhalten Sie die folgenden, aber wenn Du fragst ... Wie oft existiert der aktuelle Benutzer in Gesprächen wie von ID? Sie erhalten die folgenden Benutzer –

+1

Ich habe meine Antwort mit dem, was Sie gesagt haben, aktualisiert. – Wandrille