You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firestore存在数据但onSnapshot返回空查询快照的问题求助

Firestore存在数据但onSnapshot返回空查询快照的问题求助

虽然Firestore数据库本身运行正常(我登录时的身份认证功能是正常的),但在下面的聊天应用代码中,当执行onSnapshot监听消息集合时,返回的querySnapshot始终是空的,完全读不到数据。

Firestore页面

我当前的代码逻辑如下:

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]);

控制台输出的日志如下:

(NOBRIDGE) LOG Fetching messages for event: 4
(NOBRIDGE) LOG onSnapshot callback triggered
(NOBRIDGE) LOG No documents found in messages

我已经加了很多调试日志来排查问题,甚至尝试过直接访问单个指定文档,但还是完全获取不到数据。有没有人能帮我看看这到底是哪里出问题了?

备注:内容来源于stack exchange,提问作者Bilgehan Demirkaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:29:28