我试图显示来自我的firebase的数据,具体取决于它的星期几。我的firebase儿童在isoWeek的日子里拥有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。这可以实现吗?谢谢!
答案 0 :(得分:1)
是的,这绝对是可以实现的!
尝试:child.val()[variable]
在javascript中,我们可以使用点或括号访问对象的属性。例如,object.property
或object["property"]
。
同样,在您的情况下,要使用变量访问firebase元素,您可以执行child.val()[variable]
其中variable是某个字符串或整数来访问firebase对象的属性。也许变量= 5或变量=&#39; 5&#39;。
答案 1 :(得分:1)
你只需要替换child.val()。今天---&gt; 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,
});
});
答案 2 :(得分:0)
不幸的是,您将会遇到Firebase客户端如何处理数组的问题。
Firebase客户端会将您的数据解释为数组并将其转换为:
"myWords" : {
"words" : {
"item1" : "Tool box",
"item2" : "Ice Cream",
"item3" : "Lavender",
"item4" : "Speakers",
"item5" : "Pepsi",
"item6" : "Windows",
"item7" : "Linux",
}
}
因此它在数组的第一个位置插入一个空值。如果这不是您的应用程序的问题,那么您可以接受这个。
但对于许多应用来说,这个额外的项目是个问题。在这些情况下,我们建议您在数字前加上一些固定字符串,以确保Firebase不会对其进行字符串解释:
a <- as.data.frame(c(1,0,0, 0,1,1,1,1,1,0,0))
有关Firebase如何处理数组的详细信息,请参阅此博客文章:https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html