【问题标题】:Single document collection fetching from flutter从颤振中获取单个文档集合
【发布时间】:2020-11-30 20:33:09
【问题描述】:
Find_Document (coll_name,search_val,return_fld)  {

  var returnval;
  var db = FirebaseFirestore.instance.collection(coll_name);
  var rec = db.doc(search_val).get().then((value) {
    returnval = value.data()[return_fld];
    print(returnval);
    return returnval;
  });
 
}

当我想使用这个函数时,我得到了 null 返回。如果我使用asyncawait,那么它的返回错误类型'Future<dynamic>' 不是'String' 类型的子类型

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    您所描述的是预期的行为。 get() 返回一个将异步提供请求文档的未来。没有办法让它立即阻塞或返回 - 您确实应该为此使用 async/await,或者在您的 then 回调中处理结果。

    【讨论】:

    • 您能改写一下这段代码吗?我想在多个地方动态使用它来获取特定的字段值
    • 我是说你应该使用 async/await,因为你发现它已经可以工作了。您还应该声明函数 async 以便它可以将数据异步返回给调用者。这是非常标准的做法。
    • 感谢您的回复和患者。我已经完成了 Find_Document (table_name,search_val,return_fld) async { var returnval; var db = 等待 FirebaseFirestore.instance.collection(table_name); var rec = db.doc(search_val).get().then((value) { returnval = value.data()[return_fld]; print(returnval); return returnval; });但是我得到错误类型'Future'不是'String'类型的子类型
    猜你喜欢
    • 1970-01-01
    • 2019-12-31
    • 2022-08-20
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    相关资源
    最近更新 更多