Firebase Codelab : 7. Cloud Firestore의 데이터 표시
Firebase github : View Source
로컬에 클론해서 받았던 'friendlyeats-web' 경로에서 vs code 실행.
vanilla-js \ scripts \ FriendlyEats.Data.js 열기
function getAllRestaurants
FriendlyEats.prototype.getAllRestaurants = function(renderer) {
var query = firebase.firestore()
.collection('restaurants')
.orderBy('avgRating', 'desc')
.limit(50);
this.getDocumentsInQuery(query, renderer);
};
인자로 받아온 renderer.
firebase의 컬렉션을 가져오고
정렬하고
갯수 리미트한 query.
2개를 하단 함수에 인자로 넘긴다.
function getDocumentsInQuery
FriendlyEats.prototype.getDocumentsInQuery = function(query, renderer) {
query.onSnapshot(function(snapshot) {
if (!snapshot.size) return renderer.empty(); // Display "There are no restaurants".
snapshot.docChanges().forEach(function(change) {
if (change.type === 'removed') {
renderer.remove(change.doc);
} else {
renderer.display(change.doc);
}
});
});
};
snapshot이 어디서 튀어나왔징? 콜백함수의 결과값인가...?
snapshot이 없으면 renderer.empty() 함수를 돌려줘라.
이 때 renderer.empty() 함수, 그리고
하단에 change.type에 따라서
renderer.remove() 함수
renderer.display() 함수가 나오는데
FriendlyEats.View.js \ viewList 함수에서
var renderer =
key : val(function) 형태로 저장된 함수 호출이다.
렌더링할게 없거나
doc을 렌더링에서 제거하거나
doc을 렌더링해서 보여주거나 그런거로만 이해했다.
Terminal - hosting
friendlyeats-web/vanilla-js> $ firebase emulators:start --only hosting
chrome browser - localhost:5002
[6. Cloud Firestore에 데이터 쓰기]에서 firebase에 넣은 컬렉션의 문서를
가져와서 렌더링 display한 화면이다.
'─── Toy Project > Firebase - FriendlyEats' 카테고리의 다른 글
8-half. FirendlyEats 소스 분석 (0) | 2024.10.03 |
---|---|
8. Get() 데이터 (+ source 분석) (0) | 2024.09.27 |
6. Cloud Firestore에 데이터 쓰기 (0) | 2024.09.26 |
5. 로컬 서버 실행 (0) | 2024.09.25 |
4. Firebase 명령줄 인터페이스 설치 (0) | 2024.09.25 |