Javascript Firebase数据为;“未定义”;当它不是
我试图从firebase数据库中检索一些数据,但得到的值为“未定义” 这是我将数据保存到数据库的方式:Javascript Firebase数据为;“未定义”;当它不是,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我试图从firebase数据库中检索一些数据,但得到的值为“未定义” 这是我将数据保存到数据库的方式: var database = firebase.database(); database.ref().push({ mainArray: mainArray, secondArray: secondArray, listname: listName, mainLanguage: mainLanguage,
var database = firebase.database();
database.ref().push({
mainArray: mainArray,
secondArray: secondArray,
listname: listName,
mainLanguage: mainLanguage,
secondLanguage: secondLanguage,
}, function(error) {
if (error){
stopLoader();
showSnackbar("An error has occured! Please try again later.");
}
var database = firebase.database().ref().child('codes');
var codeInput = document.getElementById('mainSearch');
database.on('value', function(snapshot) {
if (!snapshot.hasChild(codeInput.value)) {
codeInput.value = "";
showSnackbar("A list with this code does not exist!<br><br>Please try another one.")
}
else {
var data = snapshot.val();
var listname = data.listname;
console.log(listname);
}
});
这是我读取数据的方式,但listname的值是“未定义”:
var database = firebase.database();
database.ref().push({
mainArray: mainArray,
secondArray: secondArray,
listname: listName,
mainLanguage: mainLanguage,
secondLanguage: secondLanguage,
}, function(error) {
if (error){
stopLoader();
showSnackbar("An error has occured! Please try again later.");
}
var database = firebase.database().ref().child('codes');
var codeInput = document.getElementById('mainSearch');
database.on('value', function(snapshot) {
if (!snapshot.hasChild(codeInput.value)) {
codeInput.value = "";
showSnackbar("A list with this code does not exist!<br><br>Please try another one.")
}
else {
var data = snapshot.val();
var listname = data.listname;
console.log(listname);
}
});
var-database=firebase.database().ref().child('code');
var codeInput=document.getElementById('mainSearch');
数据库.on('value',函数(快照){
if(!snapshot.hasChild(codeInput.value)){
codeInput.value=“”;
showSnackbar(“包含此代码的列表不存在!
请尝试另一个。”)
}
否则{
var data=snapshot.val();
var listname=data.listname;
console.log(listname);
}
});
这是我从数据库获得的值:
var database = firebase.database();
database.ref().push({
mainArray: mainArray,
secondArray: secondArray,
listname: listName,
mainLanguage: mainLanguage,
secondLanguage: secondLanguage,
}, function(error) {
if (error){
stopLoader();
showSnackbar("An error has occured! Please try again later.");
}
var database = firebase.database().ref().child('codes');
var codeInput = document.getElementById('mainSearch');
database.on('value', function(snapshot) {
if (!snapshot.hasChild(codeInput.value)) {
codeInput.value = "";
showSnackbar("A list with this code does not exist!<br><br>Please try another one.")
}
else {
var data = snapshot.val();
var listname = data.listname;
console.log(listname);
}
});
这是数据库中数据的结构:
var database = firebase.database();
database.ref().push({
mainArray: mainArray,
secondArray: secondArray,
listname: listName,
mainLanguage: mainLanguage,
secondLanguage: secondLanguage,
}, function(error) {
if (error){
stopLoader();
showSnackbar("An error has occured! Please try again later.");
}
var database = firebase.database().ref().child('codes');
var codeInput = document.getElementById('mainSearch');
database.on('value', function(snapshot) {
if (!snapshot.hasChild(codeInput.value)) {
codeInput.value = "";
showSnackbar("A list with this code does not exist!<br><br>Please try another one.")
}
else {
var data = snapshot.val();
var listname = data.listname;
console.log(listname);
}
});
我把代码改成了这个,现在它工作得很好。问题是我试图从错误的孩子那里得到价值。谢谢你的帮助和耐心
var database = firebase.database().ref().child('codes');
var codeInput = document.getElementById('mainSearch');
database.child(codeInput).on('value', function(snap) {
var data = snap.val();
var listName = data.listname;
var mainLanguage = data.mainLanguage;
var secondLanguage = data.secondLanguage;
var mainArray = data.mainArray;
var secondArray = data.secondArray;
});
您可以设置一个jsbin来重现这个问题吗?您只是看起来缺少
var data=snapshot.val()[codeInput]
snapshot.val()
将返回整个code
object@Phil我可以使用var data=snapshot.val()检索codes对象内部的所有内容
,但我想检索每一项并从中生成一个变量。@FrankvanPuffelen我会尝试这样做。@Magnus除了Phil的注释外,您还保存到“/”(数据库的根目录),但从/code检索/