2016-09-23 182 views
0

问题

我想这取决于它是星期几,从我的火力点显示的数据。在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具有可变。这是可以实现的吗?谢谢!

回答

1

是的,这绝对是可以实现的!

尝试:child.val()[variable]

在JavaScript中,我们可以通过使用点或括号访问对象的属性。例如,object.propertyobject["property"]

在你的情况下,要访问firebase元素和变量,你可以做child.val()[variable]其中变量是一些字符串或整数来访问firebase对象的属性。也许变量= 5或变量='5'。

+0

真棒!它现在工作非常好。 – gbland777

1

您只需要更换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, 
    }); 
    }); 
0

不幸的是你要与如何火力地堡客户端处理费周折数组在这里。

的火力地堡客户端将解释数据作为一个数组并将其转换为:

"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