오늘은 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함을 위해서 필요한 요소들인데요.

여기서 눈에 확 띄는 점은 시간순으로 정렬할 수 있다는 점 입니다.





+ Recent posts