Firebase Realtime Database에 저장되는 Chat Schema
가상 상단에 chat-room`과 chat-user를 둔다.
Firebase Realtime Database Rule
{
"rules": {
"chat-user": {
".read": "auth != null", // chat-user에 대한 읽기 권한을 인증된 사용자에게 부여
"$user_id": {
".write": "$user_id === auth.uid" // 사용자는 자신의 정보만 수정할 수 있음
}
},
"chat-room": {
".read": "auth != null", // chat-room에 대한 읽기 권한을 인증된 사용자에게 부여
".write": "auth != null", // chat-room에 대한 쓰기 권한을 인증된 사용자에게 부여
"$room_id": {
".read": "auth != null", // chat-room의 하위 데이터에 대한 읽기 권한을 인증된 사용자에게 부여
".write": "auth != null", // chat-room의 하위 데이터에 대한 쓰기 권한을 인증된 사용자에게 부여
}
}
}
}
JavaScript
복사
•
chat-user: 유저 목록에 대한 권한은 로그인 된 유저에게 읽기권한만을 제공한다.
•
chat-user/{user_id} 유저 정보에 대한 수정은 본인만 가능하도록 한다
•
chat-room: 채팅 목록에 대한 권한은 로그인 된 유저에게 읽기/쓰기 권한을 제공한다.
•
chat-room:
Read | Write | 비고 | |
chat-user | "auth != null"
로그인된 유저만 유저 목록 조회 가능 | X | |
chat-user/{user_id} | "auth != null"
로그인된 유저만 유저 목록 조회 가능 | "$user_id === auth.uid"
본인의 정보만 수정할 수 있음 | |
chat-room | "auth != null"
로그인된 유저만 채팅방 목록 조회 가능 | "auth != null"
로그인된 유저만 채팅방 목록 조회 가능 | |
chat-room/{room_id} | "auth != null"
로그인된 유저만 채팅방 세부 내역 조회 가능 | "auth != null"
로그인된 유저만 채팅방 목록 조회 가능 |