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

如何在Firebase Firestore指定文档内查询animeID字段?

解决方案

你不需要用query(它仅适用于集合级别的查询),直接针对单个指定文档获取引用,然后监听该文档的快照,再检查其animeID数组是否包含目标值即可。

修改后的代码如下:

// 传入目标文档ID,获取单个文档的引用
const docRef = doc(db, 'users', '目标文档ID'); // 替换成你要查询的具体文档ID

// 监听该文档的实时快照
onSnapshot(docRef, (doc) => {
  if (doc.exists()) {
    const userData = doc.data();
    // 检查animeID数组是否包含目标ID
    const hasTargetAnime = userData.animeID.includes(parseInt(id));
    console.log(hasTargetAnime); // 直接输出true或false
  } else {
    console.log("指定的文档不存在");
  }
}, (error) => {
  console.log("监听出错:", error);
});

关键说明:

  • 用doc(db, 'users', 文档ID)替代collection(db, 'users'),直接定位到单个文档,而非遍历整个集合。
  • 不需要构建query,因为我们已经明确要查询的文档,只需读取该文档的数据后,用数组的includes方法判断目标值是否存在。
  • 注意parseInt(id)的类型要和animeID数组中的元素类型保持一致(比如数组里是数字就用parseInt,如果是字符串则无需转换)。

内容的提问来源于stack exchange,提问作者ReactLearner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:39:16