我正在try 向我的聊天应用程序添加一个功能,允许用户返回他们最近访问过的聊天室,并在其中创建了一条消息.现在我只是想在页面上显示聊天室的名字.
我的 firebase 基地数据库是这样 struct 的.
-ChatRooms(collection)
-"chat room name" (document)
-room(name of chat room)
-uid
-messages(subcollection)
-created
-room(name of chat room)
-text
-uid
-user(display name)
-userPic
我正在try 进入"Messages"子集,这样我就可以查询它,只显示用户访问过的聊天室的名称.如果Messages子集合中文档的"uid"与Firebase"auth"currentUser.uid的"uid"匹配.
这是我的密码.
const [chatRoomData, setChatRoomData] = useState([]);
const [firebaseUserInfo, setFirebaseUserInfo] = useState(auth.currentUser);
useEffect(() =>{
onAuthStateChanged(auth, currentUser => {
setFirebaseUserInfo(currentUser);
const chatRoomCollectionRef = collection(dataBase, "ChatRooms/room/messages");
console.log(chatRoomCollectionRef)
const queryChatRooms = query(chatRoomCollectionRef, where("uid", "==", currentUser.uid));
const unSubscribe = onSnapshot(queryChatRooms, (snapshot) => {
const chatRooms = [];
snapshot.forEach((doc) => {
chatRooms.push({...doc.data(), id: doc.id});
});
setChatRoomData(chatRooms);
})
return () => unSubscribe();
})
}, []);
return (
<>
<div className="chats-container">
<header className='header-container'>
<h1 className="header">Your Chats</h1>
</header>
{chatRoomData.map((data) =>(
<div className='users-chatRooms-container' key={data.id}>
<button className='users-chatRooms'>{data.chatRoom}</button>
</div>
))}
</div>
</>
);
}
我试过了,页面上什么都没有显示.我的代码有什么问题?