【问题标题】:How to fix "The getter 'docs' isn't defined for the type 'DocumentSnapshot'."?如何解决“没有为类型'DocumentSnapshot'定义吸气剂'docs'。”?
【发布时间】:2021-03-19 07:37:36
【问题描述】:

伙计们,在尝试收听文档更改时,我在 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);
    });
   }

你们知道访问这些文档的新方法是什么吗?

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    错误消息告诉您eventDocumentSnapshot 类型对象。正如您从链接的 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);
      }
    

    【讨论】:

      猜你喜欢
      • 2021-04-14
      • 2021-09-17
      • 2021-03-26
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2021-08-28
      相关资源
      最近更新 更多