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);
});
}
コードが入力されたかを考えると、私は、ログが最初に入力されたことになる「HERE 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とは何ですか?私は、 'ref.on'関数内のconsole.logが最初に印刷されると仮定しますが、後で印刷されます。ですから、私はそれがFirebaseだから、非同期的に動いていると仮定します。したがって、homeSetup内のconsole.logはループされたものの前に実行されます。 – Homerdough
うん、それはまさに約束だ。私は書類から見積もりでポストを更新します。 – IvRRimUm