2016-12-12 6 views
0

I'mm Erstellen einer Anwendung, die viele Benutzer hat, die voneinander abhängen.Firebase Angular2 Stammbaum Struktur

Für ein Beispiel, wenn sich ein Benutzer anmeldet, gibt er eine Referenznummer ein, die er von der Person erhalten hat, die ihn an Join verwiesen hat, so dass der Prozess so weitergeht, bis es eine Stammbaumhierarchie bildet.

Hier ist ein weiteres Beispiel, dass Ururgroßmutter der erste Benutzer ist, der ihren Schlüssel an Oma weitergibt (Oma hat jetzt zwei Schlüssel, ihren eigenen Primärschlüssel und Referenzschlüssel von Uroma) und Oma wird ihren Primärschlüssel an Mutter weitergeben. Jetzt hat Mama beide (Primärschlüssel und Fremdschlüssel). Wenn sie beschließt, Kind zu haben, wird der Prozess auf diese Weise fortgesetzt.

Jetzt ist meine Frage, wie kann ich diese Generation von der Urgroßmutter zum Kind in einer Ansicht im Firebase mit so vielen Schlüsseln auflisten?

Code:

firebase.database().ref(users).orderBy('order by which key') ? 

HTML:

<ul *ngFor="fam of family"> 
    <li fam[key].username></li>which key goes in here....? 
</ul> 

Antwort

1

Ich würde einen Stammbaum Knoten mit der Liste aller Benutzer erstellen:

families: { 
    "MTQ4MTUzNzc0NDYwNw": { 
    name: "smith", 
    users: { 
     "MTQ4MTUzNzc0NzU0Mw": true, 
     "MTQ4MTUzNzc0OTk0NQ": true, 
     "MTQ4MTUzNzc1MDg2OQ": true, 
    } 
    } 
} 

und Nutzer mit Kind/Eltern Eigenschaften

users: { 
    "MTQ4MTUzNzc0NzU0Mw": { 
    nick: "gran", 
    children: { 
     "MTQ4MTUzNzc0OTk0NQ": true, 
     "MTQ4MTUzODMzMDEyNQ": true, 
    }, 
    parents: { 
    }, 
    }, 
    "MTQ4MTUzNzc0OTk0NQ": { 
    nick: "mom", 
    children: { 
    }, 
    parents: { 
     "MTQ4MTUzNzc0OTk0NQ": true, 
    }, 
    }, 
} 

Dann laden Stammbaum und Verarbeitung seiner Benutzer auf dem Client. Wenn es zu viele gibt, können Sie JSON.stringify(client_side_family_tree) dort behalten. Dies ist nur Datenstruktur, müssen Sie herausfinden, UI ...


PS. Ich weiß, es ist komisch, Mutter hat keine Kinder: p

+0

Lassen Sie mich das ausprobieren, ich sage dir, was das Ergebnis ist. –