1. database.js 작성
데이터를 읽어오는 getChats함수를 작성
export function getChats() {
let chats = [];
database.ref("chats").on("value", (snapshot) => {
snapshot.forEach((row) => {
chats.push(row.val());
});
});
return chats;
}
2. Chat.js 수정
import { auth, database } from "../services/firebase";
import { getChats, sendChat } from "../helpers/database";
chats라는 상태값에 데이터를 담는다
const [chats, setChats] = useState([]);
const getChatList = () => {
const chatList = getChats();
setChats(chatList);
};
chats테이블이 변경되거나 추가되면 getChatList가 콜백함수로 실행되어 실시간으로 화면이 업데이트 된다
useEffect(() => {
try {
database.ref("chats").on("child_added", getChatList);
database.ref("chats").on("child_changed", getChatList);
scrollToBottom();
} catch (error) {
console.log(error);
}
}, []);
'STUDY > Firebase' 카테고리의 다른 글
Firebase | 채팅 웹 애플리케이션 (6) 채팅 전송하기 (0) | 2021.01.04 |
---|---|
Firebase | 채팅 웹 애플리케이션 (5) 소셜로그인 (Google Login) (0) | 2021.01.04 |
Firebase | 채팅 웹 애플리케이션 (4) 회원가입/로그인 (7) | 2020.12.31 |
Firebase | 채팅 웹 애플리케이션 (3) 웹 앱 프로젝트에 세팅하기(React JS) (5) | 2020.12.31 |
Firebase | 채팅 웹 애플리케이션 (2) Firebase 프로젝트 설정 (0) | 2020.12.31 |