gpt4 book ai didi

reactjs - Firebase v9 React JS IndexOf 不是函数

转载 作者:行者123 更新时间:2023-12-05 02:38:01 26 4
gpt4 key购买 nike

出于某种原因,它在控制台中向我抛出一个错误“TypeError:n.indexOf 不是一个函数”,我不太明白为什么会这样。我正在使用 Firestore 和 Firebase v9 Modular,基本上它是一个在 firestore 数据库中创建类别并在类别内部创建测试任务的函数。

这是完整的错误:

TypeError: n.indexOf is not a function
at Function.fromString (index.esm2017.js:1032)
at va (index.esm2017.js:14990)
at App.jsx:48

错误消息中的第 48 行是:

const taskRef = doc(collection(db, "categorias"), where("uid", "==", currentUser), newDocRef.id)

这是我的代码:)

const currentUser = '1234'

const crearCategoria = useCallback(async() => {
try {
const newDocRef = doc(collection(db, "categorias"));

await setDoc(newDocRef, {
name: categoryName,
uid: currentUser,
projectId: newDocRef.id
})

const taskRef = doc(collection(db, "categorias"), where("uid", "==", currentUser), newDocRef.id)
await setDoc(taskRef, {
name: 'prueba',
uid: currentUser,
projectId: newDocRef.id
})

} catch (error) {
console.log(error)
}
})

最佳答案

正如 Dharmaraj 评论的那样,您不能对查询执行更新。您必须:

  1. 执行查询以找到匹配的文档。
  2. 遍历应用程序代码中的文档。
  3. 依次更新它们中的每一个。

在代码中应该是这样的:

const taskQuery = doc(collection(db, "categorias"), where("uid", "==", currentUser))
const taskDocs = await getDocs(taskQuery)
taskDocs.forEach((taskDoc) => {
await setDoc(taskDoc.ref, {
name: 'prueba',
uid: currentUser,
projectId: newDocRef.id
})
})

关于reactjs - Firebase v9 React JS IndexOf 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69819894/

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