Несмотря на то, что в базе данных Firestore есть эффективность, в приведенном ниже примере, когда приложение чата выполняет onsnapshot, Querysnapshot возвращает пусто. https://i.sstatic.net/u3msqhed.png "/>
useEffect(() => {
if (!token || !eventId) return; // Add eventId check
fetchEventDetails();
console.log("Fetching messages for event:", eventId);
const messagesRef = collection(db, "events", eventId, "chats", "default", "messages");
const messagesQuery = query(messagesRef, orderBy("timestamp", "desc"));
const unsubscribe = onSnapshot(messagesQuery, querySnapshot => {
// Add a log at the start of the callback to verify it runs.
console.log("onSnapshot callback triggered");
// Check if the snapshot is empty
if (querySnapshot.empty) {
console.log("No documents found in messages");
} else {
console.log("Snapshot data:", querySnapshot.docs.map(doc => doc.data())); // Log the data
}
setMessages(
querySnapshot.docs.map(doc => ({
message_id: doc.ref.id,
user_id: doc.data().user_id,
username: doc.data().username,
content: doc.data().content,
timestamp: doc.data().timestamp ? doc.data().timestamp.toDate() : new Date(),
fileUrl: doc.data().fileUrl || "",
}))
);
});
return () => unsubscribe();
}, [token, eventId]);
< /code>
Firebase работает, потому что я могу сделать AUTR, когда я вхожу в систему. У меня есть журнал как: < /p>
(nobridge ) Отбрасывание журналов сообщений для события: 4
(nobridge). BlockQuote>
Как я могу решить это? < /p>
Я сделал много журналов консоли. Несмотря на то, что я пытался получить доступ к одному документу напрямую, я все еще не мог получить к нему доступ.
Подробнее здесь: https://stackoverflow.com/questions/794 ... t-is-empty