从firebase web获取数据

时间:2018-05-06 20:04:23

标签: javascript jquery firebase web firebase-realtime-database

我正在尝试使用javascript获取网站的数据。我得到的问题是我无法获得用户的密钥 - > Rider - > rating - > key - >(" 评级值& #34)。我无法找到它的语法。

我想在这个jQuery中检索rating的值。

enter image description here

>

 <script>

database = firebase.database();

var ref = firebase.database().ref().child("Users").child("Riders");

ref.on('value',gotDataa,errDataa);

function gotDataa(data){
    //console.log(data.val());
    var Riders = data.val();
    var keys=Object.keys(Riders);
    console.log(keys);
    for(var i=0 ; i<keys.length;i++)
    {
        var k=keys[i];
        var car = Riders[k].car;
        var cnic = Riders[k].cnic;
        var email = Riders[k].email;
        var name = Riders[k].name;
        var phone = Riders[k].phone;
        var service = Riders[k].service;
        var rating = data.child("rating").child(keys).val();


$("#table_body").append("<tr><td>" + name + "</td><td>" + phone +"</td><td>"+ email+"</td><td>"+ cnic +"</td><td>"+car+"</td><td>"+service+"</td><td>"+rating+"</td></tr>");

    }
}

function errDataa(err){

    console.log('Error');
    console.log(err);

}
</script>

我得到null评分值请在我错误的地方纠正我。

2 个答案:

答案 0 :(得分:0)

执行以下操作:

var objRating = Riders[k].rating;

console.log(objRating[Object.keys(objRating)[0]]);

但是,请注意,如果每个用户只有一个评级,则不需要按照保存方式保存评级(使用自动生成的节点ID):您可以将评级直接分配给评级节点。

这意味着这样做:

-Riders
   - AIKI689EKJKJKJ....  //Rider ID
      - email: ....
      - name: ....
      .....
       - rating: 5

而不是:

 -Riders
   - AIKI689EKJKJKJ....  //Rider ID
      - email: ....
      - name: ....
      .....
       - rating
           - 57656YTYRRTGGH: 5

答案 1 :(得分:0)

function gotDataa(data){
 var Riders = data.val();
 data.forEach(function(childSnapshot) {
 var childKey = childSnapshot.key;
 var childData = childSnapshot.val();
}
}