2017-02-05 1 views
1

순회 중포 기지의 아이들은

var data; 
 
var starCountRef = firebase.database().ref(); 
 
starCountRef.on("value",snap =>{ 
 
    data = snap.val(); 
 
    console.log(data); 
 
    uid = //some uid here; 
 
    checkifplaying(data,uid); 
 
}); 
 
function checkifplaying(data,uid){ 
 
    var flag1 = 0; 
 
    var pos = -1; 
 
    console.log(data); 
 
    data.Users.forEach(function(user){ 
 
    if(uid == user.uid){ 
 
     flag1 = 1; 
 
     which = data.User; 
 
    } 
 
    }); 
 
    if(flag1 == 0){ 
 
    $("#contest3").show(); 
 
    } 
 
    else if(flag1 == 1){ 
 
    $("#contest1").show(); 
 
    $("#contest2").show(); 
 
    } 
 
}

내 중포 기지 DB는 다음과 같습니다

enter image description here

내가 foreach 루프를 사용하여 사용자 아이들을 반복하려고

data.Users.forEach(function(user){ 
}) 

으로 표시되지만 오류는 data.Users.forEach is not a function입니다. 데이터에는 스냅 샷을 통해 찍은 전체 db가 들어 있습니다. 그리고 마스터 오브젝트가 들어 있습니다.

이 방법을 반복하십시오.

+0

하면 될까요 코드의 일부를 붙여? –

+0

@TylerBiscoe 붙여 넣기 –

답변

2

함수에 스냅 샷 값을 전달 중입니다. 대신 스냅 샷 객체를 전달해야합니다. 이처럼 :

starCountRef.on("value",snap =>{ 
    //data = snap; 
    console.log(snap.val()); 
    uid = //some uid here; 
    checkifplaying(snap,uid); 
}); 

그리고 당신의 checkifplaying 기능에

:

function checkifplaying(data,uid){ 
    var flag1 = 0; 
    var pos = -1; 
    console.log(data); 
    data.child('Users').forEach(function(user){ 
    if(uid == user.uid){ 
     flag1 = 1; 
     which = data.User; 
    } 
    }); 
    if(flag1 == 0){ 
    $("#contest3").show(); 
    } 
    else if(flag1 == 1){ 
    $("#contest1").show(); 
    $("#contest2").show(); 
    } 
관련 문제