Javascript 未处理的拒绝(FirebaseError)函数DocumentSnapshot.get()需要1到2个参数,但调用时使用了0个参数
我正在尝试从Firebase数据库获取事件,但我不知道为什么会出现此错误:Javascript 未处理的拒绝(FirebaseError)函数DocumentSnapshot.get()需要1到2个参数,但调用时使用了0个参数,javascript,reactjs,firebase,google-cloud-firestore,Javascript,Reactjs,Firebase,Google Cloud Firestore,我正在尝试从Firebase数据库获取事件,但我不知道为什么会出现此错误: Unhandled Rejection (FirebaseError): Function DocumentSnapshot.get() requires between 1 and 2 arguments, but was called with 0 arguments. 我在其他组件中使用了非常类似的方法,当时一切都是正确的 const getEvents = async () => { c
Unhandled Rejection (FirebaseError): Function DocumentSnapshot.get() requires between 1 and 2 arguments, but was called with 0 arguments.
我在其他组件中使用了非常类似的方法,当时一切都是正确的
const getEvents = async () => {
const ref = await firebase.firestore().collection('uzytkownik').doc(selectedUser);
firebase.firestore().collection('wydarzenie')
.where("uczestnicy", "array-contains", ref).get()
.then(async resp => {
console.log(resp)
const new_array = await Promise.all(resp.docs.map(event => {
console.log(event)
return event.get().then(resp => {
let new_event = {
...resp.data(),
id: resp.id
}
return new_event;
})
}))
console.log(new_array)
setUserEvents(new_array)
})
}
响应:
活动:
据我所知,您正在寻找:
const ref = await firebase.firestore().collection('uzytkownik').doc(selectedUser);
firebase.firestore().collection('wydarzenie')
.where("uczestnicy", "array-contains", ref).get()
.then(async snapshot => {
const new_array = snapshot.docs.map(doc => {
return {
...doc.data(),
id: doc.id
}
})
}))
console.log(new_array)
setUserEvents(new_array)
})
最后,
console.log(新数组)
将记录与查询匹配的所有文档的数据和ID。我完全不明白您为什么要调用event.get()
。如果查询中已有文档,则无需再次获取。resp.docs
是引用数组,因此event
是referenceNo,不是。数组为DocumentSnapshot,包含实际的文档内容。这就是错误消息试图告诉你的。但事实并非如此resp
是一个查询快照。我建议您阅读QuerySnapshot的API文档—您将看到它的docs
属性是QueryDocumentSnapshot的数组,它本质上与DocumentSnapshot相同。重新获取每个文档真的没有意义。您已经拥有的快照中的数据没有问题。只需在每个事件上调用data(),即可获得包含字段数据的对象。您应该查看文档中的查询示例。