我正在开发一个firebase项目。在测试期间
return user.val().name;
将返回
undefined
值
console.log(user.val().name)
将返回存储在.name字段中的实际字符串。这是为什么。即使分配
也是如此user.val().name
变量,变量保持未定义。请帮助弄清楚为什么会发生这种情况。我将它打印到csv。
这是我的代码:
var database = firebase.database();
var ref2 = database.ref('information/');
var id;
var name;
ref2.on("value", function (one) {
one.forEach(function (two) {
if (typeof two.val().Id !== 'undefined') {
id = two.val().Id;
name = program(id); //name undefined
}
else {
id = "";
}
csv = name + "," + id +"\n";
});
download(csv);
});
};
function program (id) {
var database = firebase.database();
var ref = database.ref("users/" + id + "/");
ref.on('value',function(user){
if (typeof user.val().name === 'undefined') {
return null;
}
else {
console.log(user.val().name); //this doesnt show undefined
return user.val().name; //this shows undefined when returned to the name variable
}
})
}
注意:在firebase数据库中,名称值不为null。它添加了一个字符串。