오늘은 Firebase의 id에 대해서 알아보겠습니다.
1. Why not auto-Incremental
MySQL등을 사용하다가 NoSQL인 Firestore로 넘어와서,
조금 당황스럽게 생각하는 것이 바로 id부분입니다.
random한 스트링으로 되어 있는데요.
MySQL에서 auto-increment로 설정해 놓으면,
0->1->2 이런식이기 때문에,
DB에 넣고나서, 나중에 이 값을 이용해서,
오름 혹은 내림 차순으로 정렬하기도 했습니다.
예를 들면, 특정 대댓글들끼리는 같은 값을 가져야 하므로,
부모의 auto-increment값을 가지고 공유하면,
unique한 값이 공유되므로 걱정없이 쓸수 있었는데요.
firebase에서는 'saffjoawfmwfowjfowejjoID' 이런 식입니다.
이거 뭐 순서도 없고 created_at에만 의존해야 겠다는 생각이 드는데요.
2. Firebase의 PushID
firebase의 PushID는
3. 장점들
id값을 client에서 만들 수 있게 해 두오서,
동시에 여러 유저들이 request를 할 때 좀더 안전하게 사용할 수 있다고 하는군요.
4. 어떻게 만들어졌나?
재미있는 점은 Firebase의 id값들이 어떻게 생성되었는냐인데요.
Timestamp와 random한 bit들을 가지고 만들어 졌다고 합니다.
각각 시간순으로 정렬할 수 있도록 한 기능과
unique함을 위해서 필요한 요소들인데요.
여기서 눈에 확 띄는 점은 시간순으로 정렬할 수 있다는 점 입니다.
'Firebase' 카테고리의 다른 글
Firebase의 Firestore에서 Algolia이용해서 검색 적용하기 (1) | 2019.07.24 |
---|---|
Firebase와 Busboy이용해서 이미지 업로드하기 (0) | 2019.05.30 |
NoSQL에서 글번호 생성 및 조회수 만들기 (1) | 2019.04.30 |
조회수 로직을 만들어 보자 (0) | 2019.04.30 |
Firebase 서버 주소 CouldFlare의 도메인주소에 연결하기 (0) | 2019.02.17 |