我无法访问从firebase检索到的javascript对象的值

时间:2016-02-12 02:11:38

标签: firebase

你好我已经尝试了许多方法来获得它但我迷失了。

这是我的功能:

var ref = new Firebase("https://<my-url>.firebaseio.com/");
    var ref2 = ref.orderByChild("matricula").equalTo(matricula);
    var ref3 = ref2.on("value", function(snapshot){

        console.log(snapshot.numChildren());
        console.log(snapshot.val());
        }

检索到的对象是:

Object {-KACGpGoGlVbgbHM4ibI: Object}
-KACGpGoGlVbgbHM4ibI: Object
carrera: "LAMX54"
comentarios: " "
curp: "rffgr4445454445"
matricula: "006843"
nombre: "JOSE GERARDO LOPEZ VILLARREAL"
postulado: "no"
tetra: "7"
__proto__: Object
__proto__: Object

好的,当我尝试获取snapshot.val()。carrera时,响应是“未定义的”,即使我尝试获取snapshot.key()响应为“null”,我怎样才能得到里面的值对象?,提前谢谢!!!!!

1 个答案:

答案 0 :(得分:0)

执行查询时,可能有许多与该条件匹配的子节点。因此,您的value事件将由一组子节点触发。即使只有一个孩子,它仍然会在一个集合中。

要处理这个问题,你需要循环遍历孩子:

var ref = new Firebase("https://<my-url>.firebaseio.com/");
var ref2 = ref.orderByChild("matricula").equalTo(matricula);
var ref3 = ref2.on("value", function(parent){
    console.log(parent.numChildren());
    console.log(parent.val());
    parent.forEach(function(snapshot) {
        console.log(snapshot.val().carrera);
    });
});