2016-11-11 5 views
1

Ich versuche, den Schlüssel aus den Daten eines untergeordneten Knotens abzurufen.Abrufen des Schlüssels für einen untergeordneten Knoten in JavaScript Firebase

$(document).on('click', '#enter', getName); 

function getName() { 

    name = $('#user').val().trim(); 
    database.ref('players/' + name).push({ 
     name: name 
    }) 
} 

database.ref('players/' + name).child(name).on("child_added", 
    function(childSnapshot){ 

     var childKey = childSnapshot.key; 
     var childData = childSnapshot.val; 
     console.log('key', childKey) 
     console.log('data', childData) 

    }, function (errorObject) { 

     console.log("The read failed: " + errorObject.code); 
    }) 
}) 

In der Snapshot-Funktion, wenn ich die childKey Konsole anmelden, zeigt der Schlüssel der Name des Benutzers, der der Weg, die ich in der ref('players/' + name) erstellt. Aber ich brauche den Schlüssel für den Knoten, der im Knoten name verschachtelt wird. Ich bekomme einen Fehler in meiner childSnapshot Funktion, die besagt, dass die .child(name) is an invalid path. Auch sagt

Pfade müssen nicht leere Strings sein und können nicht enthalten "", "#", "$", "[" oder "]"

Zur Zeit, als ich erstellen von Daten auf Firebase sieht es wie folgt aus:

-players 
    -Johnson 
    -KWH4mjWbOuptod_vV1o 
     name: "ajks" 

ich brauche den Schlüssel unter johnson, dass lange Reihe von Buchstaben und Zahlen zu bekommen, damit ich, dass bestimmte Knoten verweisen können und fügen sie Daten, Änderungsdaten oder Aktualisierungsdaten wie der Name.

+3

Mögliche Duplikate von [In Firebase bei Verwendung von push() Wie ziehe ich die eindeutige ID] (http://stackoverflow.com/questions/16637035/in-firebase- Wenn-Verwenden-Drücken-Wie-Machen-Ich-Ziehen-Die-Einmalige-ID – cartant

Antwort

2

Versuchen Sie, diese Art und Weise

var fb_ref= firebase.database().ref('players/' + name) 
fb_ref.push({ 
       name: name 
}) 
fb_ref.on('child_added', function (data) { 
       console.log(data.key); 
      }); 

oder

fb_ref.push({ 
       name: name 
}).then(function(fb_ref){ 
    console.log(fb_ref.key); 
}) 

eine Sache im Auge zu halten, wenn Ihre Feuerbasis Version 3.x oben bedeutet Verwendung "Schlüssel" verwenden, falls Ihre Version weniger als 3 .x bedeutet "key()" wie folgt verwenden

Verwandte Themen