2016-03-23 9 views
2

Firebase'de aşağıdaki konuya sahibim; Benim verileri bu yapıda olan,:Firebase Veritabanımdaki verileri web sitemde nasıl görüntüleyebilirim?

myApp 
- myList 
    - KKJJXX...1  myString: "String One" 
    - KKJJXX...2  myString: "String Two" 
    - KKJJXX...3  myString: "String Three" 

I (benim bir web sayfasında) bazı JavaScript yapmak için yukarıdaki DB myString değerlerini listelemek istiyorum. Web'i kazandıktan sonra neyle karşılaştım. Bir noktaya çalışır, ama değil. Tarayıcımın hata ayıklama konsolunda istediğim verileri aldığımı görebiliyorum. Yazımdan sonra endişeleri daha net yazdım. ayıklama konsolunda

<script> 
var ref = new Firebase("https://myApp.firebaseio.com/myList/"); 

ref.on("value", function(snapshot) { 
    for (x in snapshot.val()) { 
     var xRef = new Firebase("https://myApp.firebaseio.com/myList/"+x+"/"); 
     xRef.once("value", function(xsnapshot) { 
      var name = xsnapshot.child("myString"); 
      console.log(name); 
     }); 
    } 
}, function (errorObject) { 
    console.log("The read failed: " + errorObject.code); 
}); 
</script> 

ben bu satırı (3 kez) olsun:

Object { A: Object, Y: Object, g: Object } 

Ve Bir Nesne I (myString) arıyorum bilgi içerdiğini görebiliriz. Konsolda myString içeriğini doğrudan listelemek için yukarıdaki komut dosyasında ne değiştirmeliyim?

cevap

3

child'u aradığınızda, yeni bir FirebaseReference alıyorsunuz - bir veri anlık görüntüsü değil. Ref'in verilerini almak için .on('value')'a ihtiyacınız vardır, ancak bu zaten verilere sahip olduğunuz için saçma olacaktır. Bunun yerine, anlık görüntüsünü yerel bir değişkene saklayın ve bunun üzerinde işlem yapın.

ref.on("value", function(snapshot) { 
    for (x in snapshot.val()) { 
     var xRef = new Firebase("https://myApp.firebaseio.com/myList/"+x+"/"); 
     xRef.once("value", function(xsnapshot) { 
      var data = xsnapshot.val(); 
      var name = data["myString"]; 
      console.log(name); 
     }); 
    } 
}); 
+0

Bunu yaptı! Teşekkür ederim. – Michel