2017-12-31 171 views
0

게임을 진행 중이며 방의 시스템을 만들려고합니다. 채워지지 않은 객실을 쿼리하고 사용자가 첫 번째 항목에 참여하게하려고합니다. 문제는 "채워진"== false 인 문서를 쿼리하고 있다는 것입니다. 내 데이터베이스에 하나 있는데, 찾을 수 없습니다.클라우드 파이어 스토어 : 쿼리가 문서를 찾지 못했지만 문서가 있습니다.

let query = roomsRef.where("filled","==","false").get().then(function(snap){ 
    console.log(snap.size); 
    if(snap.docs[0].data()){ 
     roomId = snap.docs[0].id; 
     roomsRef.doc(roomId).update({ 
      filled: true, 
      user2: username 
     }); 
     return; 
    } 
}); 

위 코드는 "정의되지 않은 속성 데이터 '를 읽을 수 없습니다.

답변

1

반환 값이없는 배열 이 dB 난 당신의 코드를 테스트

let query = roomsRef.where("filled", "==", false).get().then(function(snap){ 
    snap.forEach(doc){ 
    roomId = doc.id; 
    roomsRef.doc(roomId).update({ 
     filled: true, 
     user2: username 
    }); 
    } 
}); 
+0

에서 문서를 반복하는 방법으로 목적이며, 문제가 있음을했기 때문에 당신이 오류가 발생하는 이유는 나는 false를 boolean이 아닌 문자열로 검사했다. –