火力地堡检索数据动态
问题描述:
问题
我想这取决于它是星期几,从我的火力点显示的数据。在isoWeek的日子里,我的firebase儿童的头衔是1,2,3,4,5,6,7,随机词的值是。我的问题是,如果星期一的星期一数据如何检索?代码如下 火力地堡检索数据动态
阵营本机代码
var MY VARIABLE = moment().isoWeekday(); //Friday is 5
var items = [];
snap.forEach((child) => {
items.push({
title: child.val().title,
profile:child.val().profile,
test:child.val().test,
special:child.val().today, //,<---- I want this child.val().MY VARIABLE
_key: child.key,
});
});'
火力地堡
"myWords" : {
"words" : {
"1" : "Tool box",
"2" : "Ice Cream",
"3" : "Lavender",
"4" : "Speakers",
"5" : "Pepsi",
"6" : "Windows",
"7" : "Linux",
}
}
所以说,例如上周五,或5.我想要检索child.val()5具有可变。这是可以实现的吗?谢谢!
答
是的,这绝对是可以实现的!
尝试:child.val()[variable]
在JavaScript中,我们可以通过使用点或括号访问对象的属性。例如,object.property
或object["property"]
。
在你的情况下,要访问firebase元素和变量,你可以做child.val()[variable]
其中变量是一些字符串或整数来访问firebase对象的属性。也许变量= 5或变量='5'。
答
您只需要更换child.val()。今天---> child.val()[我的变量]
var MY_VARIABLE = moment().isoWeekday(); //Friday is 5
var items = [];
snap.forEach((child) => {
items.push({
title: child.val().title,
profile:child.val().profile,
test:child.val().test,
special:child.val()[MY_VARIABLE],
_key: child.key,
});
});
答
不幸的是你要与如何火力地堡客户端处理费周折数组在这里。
的火力地堡客户端将解释数据作为一个数组并将其转换为:
"myWords" : {
"words" : [
null,
"Tool box",
"Ice Cream",
"Lavender",
"Speakers",
"Pepsi",
"Windows",
"Linux",
]
}
所以它插入在数组的第一个位置空值。如果这对您的应用程序不是问题,那么您可以接受这一点。
但是对于很多应用程序来说,这个额外的项目是一个问题。在这种情况下,我们建议您用一些固定的字符串前缀你的号码,以确保火力地堡不确实的字符串解释:
"myWords" : {
"words" : {
"item1" : "Tool box",
"item2" : "Ice Cream",
"item3" : "Lavender",
"item4" : "Speakers",
"item5" : "Pepsi",
"item6" : "Windows",
"item7" : "Linux",
}
}
看到这个博客帖子大约火力地堡如何处理数组的更多信息:https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html
真棒!它现在工作非常好。 – gbland777