2016-09-23 231 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