firebase - 如何解决“没有为类型'DocumentSnapshot'定义吸气剂'docs'。”?
问题描述
伙计们,当我尝试收听文档更改时,我在 Firebase 更新方面遇到了一点麻烦,在我的情况下,它是event.docs
,它说The getter 'docs' isn't defined for the type 'DocumentSnapshot'
。检查了迁移指南,但无法找到对代码的修改。
这是我的代码:
void _listenToOrders() {
_subscription = userOrdersRef.doc(authUser.id).snapshots().listen((event) {
orders.clear();
for (final doc in event.docs) {
orders.add(Order.fromDocument(doc));
}
print(orders);
});
}
你们知道访问这些文件的新方法是什么吗?
解决方案
错误消息告诉您这event
是一个DocumentSnapshot类型的对象。正如您从链接的 API 文档中看到的那样,它没有名为“docs”的属性。它不是QuerySnapshot(它确实有零个或多个“文档”)。DocumentSnapshot 仅包含一个文档:您在userOrdersRef.doc(authUser.id)
.
由于您只会从 DocumenSnapshot 列表器中获取一个文档,因此无需尝试迭代任何内容。只需按原样使用 DocumentSnapshot。
void _listenToOrders() {
_subscription = userOrdersRef.doc(authUser.id).snapshots().listen((snapshot) {
orders.clear();
orders.add(Order.fromDocument(snapshot));
print(orders);
}
推荐阅读
- javascript - 将数据从 .NET razor 视图传递到 Svelte
- c++ - 用于动态模板调用的 C++ 宏 (X- 宏)
- process - 我们在 linux 中是否有工具来管理 Stargate (DataStax)?
- mysql - 了解 EXPLAIN SELECT 以优化 MySQL 查询
- java - 我应该在 Android Studio 中转换为导航组件/编辑器吗?
- javascript - TypeScript 不允许我在 setState 中使用 prevState
- python - Visual Studio 代码调试器问题
- war - Liquibase SQL 变更集无法加载 CSV 文件:FileNotFoundException
- interbase - 如何使用 TIBRestore 指定 Interbase 服务名称
- python - 带背景干扰的轮廓