Firebase의 제한 사항입니까? 아니면이 모든 것을 잘못 했습니까? 코드 중간에 db.collection('users').doc(friendId).get()...
을 추가 할 때까지 모든 작업이 수행됩니다. 미리 감사드립니다.하위 컬렉션이있는 Firestore 쿼리
const db = admin.firestore();
const friendRef = db.collection('users').doc(id).collection('friends');
friendsList = [];
friendRef.get().then((onSnapshot) => {
if (!onSnapshot.empty) {
onSnapshot.forEach((friend) => {
const friendId = String(friend.data().person_id);
db.collection('users').doc(friendId).get().then((result) => {
const firstName = String(result.data().name.first);
const lastName = String(result.data().name.last);
})
const data = {
personId: friendId,
firstName: firstName,
lastName: lastName,
}
friendsList.push(data);
})
res.send(friendsList);
} else {
res.send({
'message': 'no friends'
});
}
}).catch((e) => {
res.send({
'error': e
});
})
굉장, 효과가있었습니다. 나는 너의 설명으로 지금 이해한다. 다시 한번 감사드립니다. 나는 이것을 위해 ES6을 사용하고 싶다. 시간이 있고 상관 없으면 ES6 비동기/대기를 사용하여 보낼 수 있습니까? 나는 Google 기능으로 ES6을 배우기 시작할 것입니다. 미리 감사드립니다. –
안녕하세요. 내가 어떤 이유로 든'personId : snapshot.id'에 대한 결과를 얻지 못하는 것을 제외하고는 모두 작동합니다. 나는 snapshot.id와 result.id를 시도했지만 그 중 하나는 작동하지 않았다. 이 코드는'onSnapshot.forEach ((friend) ...'의 ID이며'friend.id'이어야합니다. 다시 한번 감사드립니다. –
코드는'friendId'를 어떻게 초기화했는지 보여주지 않았으므로 문서 ID라고 가정했습니다. : https://firebase.google.com/docs/reference/js/firebase.firestore.DocumentSnapshot#~id. 그렇지 않은 경우 필요에 맞게 솔루션의 해당 부분을 수정해야합니다. –