2017-05-04 5 views
0

Meine Feuerbasis db Struktur ist unten angegeben,Zugriff auf Firebase-db-Unterobjektelemente?

users 
fb-user-key1 
    user1-details1 
    Tags 
     Tag-key1  
      "name":"value" 
     Tag-key2 
      "name":"value" 

fb-user-key2 
    user1-details2 
    Tags 
     Tag-key1  
      "name":"value" 

Tag-Key1 & Benutzer-Schlüssel der von Feuerbasis mit Push erzeugt werden(). Firebase-Code zum Zugriff auf den Inhalt ist,

var fbref = firebase.database().ref("users"); 
fbref.child("Tags").on("child_added", function(e){ 
    var Tagobj = e.val().name; 
    console.log(Tagobj); 
}); 

Dieser gibt nichts zurück. Ich kann in der obigen Datenstruktur nicht auf das Name: Wert-Paar zugreifen. ` modifizierte Code hinzufügen,

firebase.database().ref("users").on("child_added",function(e‌​) { var Tagobj = e.val().Tags; }); 

Ausgabe des obigen Codes ist output data structure

Wie dieser Name Wert-Paare zugreifen ?? Firebase-Schlüssel sind ein Problem? Nicht bekommen, wo ich falsch liege. Schätzen Sie Ihre Eingaben.

+0

Was ist Ihr Anwendungsfall? Werden "Tags" für einen Benutzer jemals aktualisiert, nachdem ein Benutzer erstellt wurde? Haben Sie in Ihrer App ein Geschäft, in dem Sie neue Werte hinzufügen und das erneute Rendern auslösen können? – ArneHugo

+1

'Tags' ist nicht das Kind von' Benutzern'. –

+0

@ArneHugo, Ja-Tags werden häufig mit neuen Name-Value-Paaren aktualisiert. – user1322692

Antwort

0

Da Tags eine untergeordnete Eigenschaft jedes Benutzers ist, müssen Sie sie von jedem Benutzerobjekt auslesen.

Wenn Sie alle Tags für alle Benutzer wollen, vorausgesetzt, Tags für jeden Benutzer nicht aktualisiert wird, nachdem ein Benutzer erstellt wird, können Sie dies tun:

tagsPerUserId = {}; 

firebase.datatabs().ref('users').on('child_added', function(snap) { 
    tagsPerUserId[snap.key] = snap.value().Tags; 
    // TODO: Notify view that tagerPerUserId is updated and needs to be re-rendered 
    console.log(`Tags for userId ${snap.key}: ${snap.value().Tags}`); 
}); 

Auf diese Weise können auch Tags neuer Benutzer erhalten, wenn Sie werden erstellt, aber Sie erhalten keine Updates für Tags der vorhandenen Benutzer.

+0

Neuer Code und Ausgabeformat zu meiner Frage hinzugefügt. Bitte überprüfen Sie – user1322692

+0

In Ihrem Beispiel [Beispiel Ergebnis] (https://i.stack.imgur.com/zEXJx.png) scheinen Sie die Tags für einen Benutzer zu erhalten, wie ich es erwarten würde. Ich bin mir nicht sicher, ob ich das Problem verstehe. Versuchen Sie, den Namen für jeden Benutzer aus "Tags" zu erhalten? – ArneHugo

+0

ja ich tring, um den Namen für jeden Benutzer unter Tags zu bekommen – user1322692