gpt4 book ai didi

javascript - Firebase 错误 : TypeError: Cannot use 'in' operator to search for '_delegate' in undefined

转载 作者:行者123 更新时间:2023-12-05 00:32:03 25 4
gpt4 key购买 nike

我是 firebase 新手,过去两天在从集合中查询和删除文档时遇到了一些困难。具体来说,每次启动服务器时,我都会尝试清除我的整个公司虚拟数据集合,然后再循环遍历虚拟数据并将其写入集合(以防止重复)。
我已经能够获取我公司的虚拟数据并将其写入我的“公司”集合中没有问题。问题是当我尝试从集合中删除文档时;它不会删除,并且在将检索变量传递给 deleteDoc() 方法时似乎会引发以下错误。
注意:我决定先尝试删除一个文档。如果我能成功地做到这一点并且它反射(reflect)在 firebase 集合中,那么我应该能够毫无问题地清除整个集合。

TypeError: Cannot use 'in' operator to search for '_delegate' in undefined


我知道“in”关键字仅在检查对象上是否存在属性时才有效。我在函数的每个点记录了数据,以确保我正确引用了文档并将适当的数据类型传递给 deleteDoc() 函数(这将是一个对象)。
这是我将虚拟数据写入数据库的代码(工作正常):
export const dummyDataToFirebase = async() => {
try {
const batch = writeBatch(db);
dummyData.forEach(doc => {
addDoc(companyRef, doc)
console.log(doc)
})
await batch.commit();
console.log('success!')

} catch (error) {
console.error(error, 'try again!');
}
}
这是我从数据库集合中删除文档的代码(问题)
const deleteOne = async () => {
try {
const docRef = doc(companyRef, '86e9cade14e2a972c526db4b7c828ed7')
const retrieve = await getDoc(docRef)
console.log(retrieve)
await deleteDoc(retrieve)
if(retrieve.exists()) {
console.log('still exists')
} else {
console.log('it worked!')
}
} catch (error) {
console.error(error, 'nope')
}
}
deleteOne()
这是我从我写的 deleteDoc 函数中得到的错误:

index.js:1 TypeError: Cannot use 'in' operator to search for '_delegate' in undefinedat Tc (index.esm2017.js:14691)at ph (index.esm2017.js:17522)at deleteOne (Firebase.jsx:101) 'nope'[enter image description here][1]


检索 console.logged 的​​对象
[1]: /image/srxpq.png
控制台中的错误
[2]: /image/p2xQk.png

最佳答案

deleteDoc需要一个 DocumentReference .你传递的是 DocumentSnapshot .如果您使用 deleteDoc(docRef) ,你不应该得到这个错误。

关于javascript - Firebase 错误 : TypeError: Cannot use 'in' operator to search for '_delegate' in undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70365858/

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