gpt4 book ai didi

firebase - 类型错误 : Cannot read property '_fieldsProto' of undefined

转载 作者:行者123 更新时间:2023-12-04 08:15:28 25 4
gpt4 key购买 nike

我正在使用 Firestore,每当我尝试从查询快照调用文档上的 data 方法时都会收到此错误。这是我的代码。

  let snapshot: FirebaseFirestore.QuerySnapshot<FirebaseFirestore.DocumentData>;
try {
snapshot = await admin.firestore()
.collection("products")
.where("email", "==", email)
.get();
} catch (error) {
// error code
}

if (snapshot.empty) {
// does not exist
return;
}

const docs: DbSubscription[] = [];

snapshot.forEach(({ data, id }) => {
// this is where error is thrown
docs.push({ ...data(), id } as DbSubscription);
});

我确认文档存在并且有数据,因为将 snapshot?.docs[0]?.data() 记录到控制台会输出预期的结果。但是,调用上面的 data 方法会引发错误。

有人知道为什么会发生这种情况吗?非常感谢!

最佳答案

因此看来函数datathis 对象进行内部引用以访问_fieldsProto 对象。当data函数通过解构从文档快照中拉出后,this不再指向文档快照,而是指向全局对象。因此无法找到 _fieldsProto 对象并抛出错误。

可以通过直接从文档快照调用数据函数在您的代码中纠正此问题:

  snapshot.forEach((doc) => {
const [id, data] = [doc.id, doc.data()];
docs.push({ ...data, id } as DbSubscription);
});

关于firebase - 类型错误 : Cannot read property '_fieldsProto' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65725756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com