1. realtime database json데이터 내 키값 나눠서 할당하기
: 여러개의 스크린에서 서로 다른 리스트를 넣고 싶을 때,
Json데이터와 스크린에서 불러올 키값을 간단하게 수정해 주면 된다.
ㄱ. 사용방법
1) realtime database에 업로드 할 json 데이터의 최상위 키 값을 여러개로 하고,
서로 다른 이름으로 지정해준다.
2) 원하는 페이지의 js파일에서, items라는 키값을 원하는 리스트의 키값으로 변경해준다.
ㄴ. 예시
1) 여러개의 키값을 지정하여 각각의 리스트를 편집해주고 realtime database에 업로드
DB.json
{
"items": [ ...
],
"items2": [ ...
]
}
2) 원하는 페이지.js의 items로 되어있는 부분만 items2로 수정
2. firebase 공식 API 이해하기
: 공식 API에서 제공하는 명령어의 용도를 이해하자.
1) .ref : 참조
2) .once : 데이터 불러오는 밸류값 지정. 아래표 참고
( .on : 파생된 기능. 아래 코드는 on을 이용한 snapshop시 참고)

( 공식문서 중 하나 : https://rnfirebase.io/database/usage )
( 참고 링크 : http://daplus.net/firebase-firebase%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EC%9D%B4%EB%A6%84-%EC%86%8D%EC%84%B1%EC%9C%BC%EB%A1%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-%ED%99%95%EB%B3%B4/ firebase가 지정한 임의의 키에서 데이터 읽는법)
database.ref().on("value", function(snapshot) {
// storing the snapshot.val() in a variable for convenience
var sv = snapshot.val();
console.log("sv " + sv); //returns [obj obj]
// Getting an array of each key in the snapshot object
var svArr = Object.keys(sv);
console.log("svArr " + svArr); // [key1, key2, ..., keyn]
// Console.log name of first key
console.log(svArr[0].name);
}, function(errorObject) {
console.log("Errors handled: " + errorObject.code);
});
3) .then
4) .catch
5) .val
- Object.value() : 괄호안에 지정한 JSON 데이터에서 밸류값만 추려온다는 뜻.
예제 설명 : firebase의 like/user_id 경로에서 받아온 값을 snapshot 형식으로 가져온다.
=> 이를 items라는 변수로 받고 => 이 값의 밸류값만 다시 items_list로 받는다.
=> 밸류값만 빼온 값을 setState에 넣어서 state라는 getter변수에 대입해준다.
// value 값만 가져오기
Object.values(snapshot.val());
// key 값만 가져오기
Object.keys(snapshot.val());
firebase_db
.ref("/like/" + user_id)
.once("value")
.then((snapshot) => {
console.log("파이어베이스에서 데이터 가져왔습니다!!");
let items = snapshot.val();
let items_list = Object.values(items);
setState(items_list)
...
})
6) .value
7) snapshot : 기존의 데이터 가져오는 방식은 JSON으로 가져옴. snapshot을 사용하면 swift에 맞게 딕셔너리 형식으로 return된다.
8) .child() : 데이터가 있을 위치 지정
'React-native > 정리' 카테고리의 다른 글
| Pull Down Refresh 구현하기 (0) | 2022.06.07 |
|---|---|
| [개정된 링크 참고] Playlist 만들기 (=Likepage) (0) | 2022.05.29 |
| Loading화면 구현 (2) (0) | 2022.05.25 |
| Flatlist + SearchBar (3편 공식문서 SearchBar형) (0) | 2022.05.25 |
| Flatlist + SearchBar (2편 <FlatList> Header형) (0) | 2022.05.25 |