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

Firestore中collection.get()无法获取Schedine集合文档的问题

解决Firestore无法获取Schedine集合文档列表的问题

可能的原因及解决方案:

1. 安全规则限制(最常见)

Firestore的安全规则很可能只允许读取Schedine下的in corso子集合,却没有授权读取Schedine本身的文档。

检查你的Firestore安全规则,确保添加对Schedine集合的读取权限:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // 允许读取Schedine集合下的所有文档
    match /Schedine/{docId} {
      allow read: if true; // 可根据实际需求替换为权限校验逻辑,比如request.auth != null
      
      // 保留对子集合的权限
      match /in corso/{subDocId} {
        allow read: if true;
      }
    }
  }
}

2. 添加错误排查代码

原代码没有错误捕获,无法知道请求失败的原因。修改代码加入异常处理,定位具体问题:

try {
  const ref1 = await firestore.collection("Schedine").get();
  console.log(`共找到 ${ref1.size} 个文档`);
  ref1.forEach(doc => {
    console.log(doc.id);
  });
} catch (err) {
  console.error("获取集合文档失败:", err);
}

如果是权限问题,控制台会输出Permission denied的错误信息。

3. 确认文档实例与环境一致性

确保你使用的firestore实例和读取子集合时的实例是同一个,避免因环境(如测试/生产)切换导致的集合访问错误。

4. 验证文档存在性

虽然你能访问子集合,但仍需确认Schedine下的目标文档在Firestore控制台中确实存在(即使是没有任何字段的“空文档”,collection.get()也应该能返回其ID)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:00:47