firebase - null 不是对象(评估 '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
null 因为您没有提供任何错误处理并且查询抛出错误。只需将错误处理程序作为第二个参数提供给onSnapshot
.
推荐阅读
- javascript - 有效性.valid 是如何工作的?
- pip - 使用 pip install 安装 Cartopy 但缺少 Proj 版本至少 4.9.0
- java - SOAP Web 服务 - 无法从 XSD 生成类
- rust - 可变借用固定结构的两个字段
- asp.net - microsoft/aspnet:4.6.2 Windows 容器中存在 web.config 时出现错误 500
- laravel - Laravel 5.7 上的分页问题
- sas - proc 逻辑输出拟合模型预测 1 还是 0
- python - 操作后查找并替换正则表达式术语?
- python - 在heroku上部署geodjango的问题
- python - Python heroku sqlite3 现有表不存在