null 不是对象(正在计算 'snapshot.forEach')
null is not an object (evaluating 'snapshot.forEach')
我正在尝试订阅 firestore 上的查询,但在添加过滤器时出现错误。
这个很好用
useEffect(() => {
if (dbChats && currentUser?.uid) {
const unsubscribe = dbChats
.orderBy('createdAt')
.limit(100)
.onSnapshot((querySnapshot) => {
const chats = firebaseLooper(querySnapshot);
setChats(chats);
});
return unsubscribe;
}
}, [dbChats]);
但这不是
useEffect(() => {
if (dbChats && currentUser?.uid) {
const unsubscribe = dbChats
.where('participants', 'array-contains', currentUser.uid)
.orderBy('createdAt')
.limit(100)
.onSnapshot((querySnapshot) => {
const chats = firebaseLooper(querySnapshot);
setChats(chats);
});
return unsubscribe;
}
}, [dbChats]);
每当我添加
where('participants', 'array-contains', currentUser.uid)
它抛出错误
null is not an object (evaluating 'snapshot.forEach')
请注意,这也有效
dbChats.where('participants', 'array-contains', currentUser.uid).get()
snapshot
为空,因为您没有提供任何错误处理并且查询抛出错误。只需提供一个错误处理程序作为 onSnapshot
.
的第二个参数
我正在尝试订阅 firestore 上的查询,但在添加过滤器时出现错误。
这个很好用
useEffect(() => {
if (dbChats && currentUser?.uid) {
const unsubscribe = dbChats
.orderBy('createdAt')
.limit(100)
.onSnapshot((querySnapshot) => {
const chats = firebaseLooper(querySnapshot);
setChats(chats);
});
return unsubscribe;
}
}, [dbChats]);
但这不是
useEffect(() => {
if (dbChats && currentUser?.uid) {
const unsubscribe = dbChats
.where('participants', 'array-contains', currentUser.uid)
.orderBy('createdAt')
.limit(100)
.onSnapshot((querySnapshot) => {
const chats = firebaseLooper(querySnapshot);
setChats(chats);
});
return unsubscribe;
}
}, [dbChats]);
每当我添加
where('participants', 'array-contains', currentUser.uid)
它抛出错误
null is not an object (evaluating 'snapshot.forEach')
请注意,这也有效
dbChats.where('participants', 'array-contains', currentUser.uid).get()
snapshot
为空,因为您没有提供任何错误处理并且查询抛出错误。只需提供一个错误处理程序作为 onSnapshot
.