Firebase에서 entity 생성시각 저장하기

Parse, Kinvey, usergrid, Azure Mobile Services 등은 하나의 entity를 저장하면 생성시각을 자동으로 함께 저장합니다. 이런 BaaS들은 대부분 entity의 특정 프로퍼티에 접근할 때 rowData.keyname처럼 접근하는데, Parse의 경우는 rowData.get('comment')처럼 접근합니다. 생성시각 접근할 때에는 Parse는 rowData.createdAt처럼, Kinvey는 rowData._kmd.ect처럼, usergrid는 rowData.created*1000처럼, Azure는 rowData.createdAt처럼 접근합니다. Parse의 경우는 생성시각 같은 프로퍼티에 접근할 때에는 get을 사용하지 않는 예외가 있는 거죠.

Firebase는 entity 생성시각을 자동으로 저장하지 않습니다. 그래서 아래와 같이 명시적으로 정해서 넣어줘야합니다. "createdAt" : {".sv" : "timestamp"} 부분을 주의 깊게 보시기 바랍니다. 서버의 시각을 저장합니다. sv는 Server Value의 줄임말입니다.

curl -X POST -d '{
    "title" : "블로그, 시험 공부",
    "date" : "2004-04-25 14:37:23",
    "author" : "imyaman",
    "text" : "<ul lang=\u0022ko\u0022>\u000A<li>블로그로 전환</li>\u000A<li>시험 공부</li>\u000A</ul>",
    "createdAt" : {".sv" : "timestamp"}
}' 'https://weblog-683a9.firebaseio.com/posts1/.json'