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

Firestore调用getDoc查询集合时报Expected type 'Tc'错误怎么解决?

错误产生原因
  • 你调用的getDoc()是Firestore专为查询单个文档设计的API,仅接受DocumentReference(单个文档引用)类型的参数
  • 你代码中通过collection(db, 'todos')拿到的是CollectionReference(集合引用)类型的对象,传入getDoc()后类型不匹配,就触发了压缩混淆后的类型校验报错。报错信息里的Tc、Ac是Firebase SDK打包压缩后的内部类型别名,本质就是参数类型不符合要求。
解决办法

获取整个集合下的所有文档,需要调用批量查询APIgetDocs()(注意是复数形式),查询成功后遍历返回的docs数组即可拿到所有文档数据,修正后的代码如下:

const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

async function getTodos() {
    try {
        const todoRef = collection(db, 'todos');
        const todosSnapshot = await getDocs(todoRef);
        // 遍历快照获取所有文档数据
        const allTodos = todosSnapshot.docs.map(doc => ({
            id: doc.id,
            ...doc.data()
        }));
        console.log(allTodos);
        // 可选:判断集合为空的情况
        if (todosSnapshot.empty) {
            console.log('todos集合下没有文档');
        }
    } catch (err) {
        console.log(err)
    }
}
  • 如果需要监听集合的实时变化,替换getDocs为onSnapshot即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:39:03