2017-07-18 3 views
0

Ich habe dies in meiner Feuerbasis DB:erhalten Feuerbasis Schlüssel von Snapshot funktionieren nicht

{ 
    "vehicles" : { 
    "fz20tqpxUChOM98fNUYGQhtZ83" : { 
     "amount" : 31, 
     "timeStamp" : "2017-07-18T20:31:34Z" 
    }, 
    "sw30tqpxUChOM98fNUrGQhtk33" : { 
     "amount" : 45, 
     "timeStamp" : "2017-07-18T20:31:34Z" 
    } 
    } 

ich .on bin mit einem Schnappschuss der Daten zu erhalten:

var ref = database.ref('vehicles'); 
    ref.on('value', function(snapshot) { 

    var obj = snapshot.val(); 
    for (var key in obj){ 

     console.log(obj);//prints my obj 
     console.log(obj.key);//prints 'undefind' both times (why??) 
     console.log(obj.fz20tqpxUChOM98fNUYGQhtZ83);//prints data 



     if ('fz20tqpxUChOM98fNUYGQhtZ83' === key) {//Just for testing 
      console.log("IT IS ===");    //my 'key' is equal to 
                //the hardcoded key 
     } else { 
      console.log("NOT ==="); 
     } 

    } 
    }); 

Als ich console.log(obj.key); ich undefined für beide Schlüssel. Aber wenn ich console.log(obj.fz20tqpxUChOM98fNUYGQhtZ83); laufen lasse, bekomme ich meine Daten, offensichtlich kann ich meinen Schlüssel dort nicht fest codieren, also WARUM druckt es nicht, wenn ich es auch frage ???

Antwort

1

obj.key nur funktionieren würde, wenn es buchstäblich genannt key ein Schlüssel im Objekt waren, wie folgt aus:

{ 
    key: "foo" 
} 

Was Sie wollen, ist obj[key], die den Wert des Schlüssels auf der Basis eines Nachschlagen im Wörterbuch nachschlagen des Variablenwerts anstelle einer Literalreferenz.

+0

Danke, ich fühle mich dumm .. Besser als nicht die Antwort für weitere 4 Stunden zu kennen. – hunterInt

Verwandte Themen