【问题标题】:"The method 'getDocuments' isn't defined for the type 'DatabaseReference'." Flutter - Firebase“没有为‘DatabaseReference’类型定义‘getDocuments’方法。”颤振 - Firebase
【发布时间】:2021-05-12 23:22:05
【问题描述】:

我在将我的项目列表保存在函数中时遇到了一些困难,因为我确实收到错误“方法 'getDocuments' 没有为类型 'DatabaseReference' 定义。”我不知道如何解决它,也许有人会这么好心并解释我做错了什么。

这里是功能码sn-p

getItemStreamSnapshots() async {
var data = await FirebaseDatabase.instance
    .reference()
    .child("Book")
    .getDocuments();

setState(() {
  _allResults = data.documents;
});
searchResultsList();
return "complete";
}

这是我的数据库的样子

【问题讨论】:

    标签: firebase flutter dart firebase-realtime-database


    【解决方案1】:

    DatabaseReference 没有 getDocuments() 方法。如果要读取与DatabaseReference 对应的数据,则应使用once() 方法或onValue 属性。

    您将在以下两篇文章中找到有关如何将实时数据库与 Flutter 一起使用的更多详细信息:"How to use Firebase realtime database with Flutter""How to use Firebase Queries In Flutter"

    【讨论】:

    • 感谢您抽出宝贵时间,我明白了 DatabaseReference 的意思。我正在关注教程,其中这部分代码是使用 Firestore.instance 完成的,因为新版本不支持它。但最终它对我来说并没有成功。
    • 改用 FirebaseFirestore.instance
    【解决方案2】:

    自 0.14.0 查询

    已弃用:调用 getDocuments() 已弃用,取而代之的是 get()。

    中断:getDocuments/get 已更新为接受 GetOptions 实例(见下文)。

    新:现在可以链接查询方法。

    新:现在可以调用基于同点游标的查询而不抛出异常(例如,调用 endAt() 然后 endBefore() 将用 endBefore 替换“结束”游标查询)。

    新:增加了对 limitToLast 查询修饰符的支持。

    链接:https://pub.dev/packages/cloud_firestore/changelog#0140

    【讨论】:

      猜你喜欢
      • 2021-06-11
      • 2020-11-05
      • 2022-01-17
      • 1970-01-01
      • 2021-01-25
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      相关资源
      最近更新 更多