새로 고침 할 때마다 모든 Firebase 컨텐트를 무작위로로드하고 싶지만 모든 Firebase 데이터를 사전에 임의로 가져올 수는 없습니다.자바 스크립트 - Google Firebase에서 임의로 데이터를 가져 오는 방법은 무엇입니까?
전역 배열이 있고 거기에 파일을 밀어 넣고 반복합니다. 그러나 Javascript는 타이밍이 꺼져 있기 때문에 배열이 비어 있다고 생각합니다. 코드를 입력하는 방법, 내가 로그가 먼저 입력 할 것 '여기 randomStore의 길이가'가정 것이다, 대신 내가 얻을 고려
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 length is 0
randomStore length HERE is 1
randomStore length HERE is 2
randomStore length HERE is 3
다른 배열을 사용하면 무작위로 정렬하고 조작 할 수 있지만 제대로 들어갈 수는 없습니다.
'addFeaturedImages();'를 호출 할 필요가 없습니다. addFeaturedImages – IvRRimUm
IvRRimUm을 사용하지 않아도 그대로 유지하면 차이가 없습니다. 나는 그룹이 더 많아서 그 기능을 가지고있다. 자바 스크립트 약속이란 무엇입니까? 나는 'ref.on'함수 내부의 console.log가 먼저 인쇄되지만, 후에 인쇄된다고 가정합니다. 따라서 Firebase이기 때문에 비동기 적으로 실행되고 있으므로 homeSetup 내의 console.log는 루프 된 것보다 먼저 실행됩니다. – Homerdough
그래, 약속은 바로 그 것을 위해 만들어졌다. 게시물에서 인용문을 업데이트 할 예정입니다. – IvRRimUm