챗 룸 값 정말...
2024. 1. 15. 01:01ㆍ개발
supabase로 채팅을 구현하는데,
스키마 구조를 짜고, chats (챗방)에 동적인 값을 줘야 하는데
// 기존 챗방이 없으므로 새 챗방 생성
const { data: newChatData, error: newChatError } = await supabase
.from('chats')
.insert({ }) //id: selectedUserId
.single(); // 챗방을 생성하고 바로 그 데이터를 반환하는 것을 가정
console.log('newChatData',newChatData)
이걸 자동생성으로 하면, 아래 사진 처럼 계속 null 값을 반환해서

챗방을 생성하면서 chats_users라는 테이블에
값을 주면서 참조하도록 만들어줘야 되는데
// 새 챗방에 두 사용자를 chats_users에 추가
// if (newChatData) {
const { error } = await supabase.from('chats_users').insert([
{ chat_id: newChatData .id , user_id: userData.id },
{ chat_id: newChatData .id , user_id: otherUserData.id },
]);
if (error) {
console.error('새 챗방에 사용자 추가 중 오류 발생:', error);
return;
}
이렇게 하면 챗방과 유저들의 데이터 그리고 메시지가 서로 유기적으로 연결되면서
서로를 참조해서 돌아가게 되는데,
챗방 생성에서 계속 null을 반환해서 해결법에 골머리를 앓는 중이다.
hash로 고유 값을 줘서 구현은 성공하기는 했는데. 문제는 계정간의 1:1 채팅이 아니라,
중고거래 할때 처럼 각 방에 아, 방을 만들때 고유값을 줘버리고 그걸 챗방 값으로 삼아버리면 되는구나.
다시 해보고 수정해야겠다.
'개발' 카테고리의 다른 글
supabase 테이블 값이 안바뀌니 엎고 다시 만들 수 밖에.. (0) | 2024.01.16 |
---|---|
봤어도 활용을 못하면 무쓸모. (0) | 2024.01.15 |
어려운데 재밌죠? (0) | 2024.01.11 |
리얼타임으로 1:1 챗 구현하기 (1) | 2024.01.10 |
최종 플젝/ 회의 진행상황 (0) | 2024.01.09 |