我希望每次刷新時都隨機加載所有Firebase內容,但我似乎無法將所有Firebase數據都放到字典中,以便隨機化。Javascript - 如何從Google Firebase中隨機抽取數據?
我有一個全局數組,我試圖推動我的文件在那裏,然後遍歷它們。但是Javascript認爲數組是空的,因爲時序關閉了。
var randomStore = new Array;
function homeSetup() {
if(ref.toString() == featuredRef.toString()){
addFeaturedImages();
}
console.log('randomStore length is ' + randomStore.length);
}
function addFeaturedImages(){
featuredRef.on("child_added", function(snapshot) {
var doc = {
// 'name': snapshot.key, //name is the id
'artist': snapshot.val().artist,
'author': snapshot.val().author,
'projectTitle': snapshot.val().projectTitle,
'text': snapshot.val().text
};
randomStore.push(doc);
console.log('randomStore length HERE is ' + randomStore.length);
});
}
考慮代碼是如何打字,我將認爲「randomStore長度在這裏」的日誌將第一類型的,而是我得到這個:
randomStore length is 0
randomStore length HERE is 1
randomStore length HERE is 2
randomStore length HERE is 3
如果我得到了我的數據轉換成一個不同的數組,然後我可以操縱它來隨機排序和這樣的東西,但我似乎無法正確地在那裏得到它。
你不需要調用'addFeaturedImages();'只需保持原樣,沒有addFeaturedImages – IvRRimUm
IvRRimUm,沒有什麼區別。我有這個功能,因爲我有更多的團體,並沒有問題。 什麼是JavaScript Promise的?我會假設'ref.on'函數中的console.log將首先被打印,但它會在後面打印。所以我會假設因爲它是Firebase,它是異步運行的,所以homeSetup中的console.log在循環之前執行。 – Homerdough
是的,承諾是完全正確的。我將通過文檔引用更新帖子。 – IvRRimUm