【问题标题】:Future<int> not able to get data from FirebaseFuture<int> 无法从 Firebase 获取数据
【发布时间】:2019-08-10 13:08:54
【问题描述】:

我正在尝试使用 Flutter 在 Firebase 中获取集合的长度。我有一个个人资料页面,可以加载您从数据库中完成的远足次数,但是当我打印变量时,我不断收到Future&lt;int&gt;。我该如何解决这个问题?

class ProfilePage extends StatefulWidget {
   @override
  _ProfilePage createState() => new _ProfilePage();
}

int doneHikes;
Database temp = new Database();

class _ProfilePage extends State<ProfilePage> {

@override
  void initState() {
  super.initState();
  _numOfDoneHikes();
}

Future<void> _numOfDoneHikes() async{
  var asyncResult = await temp.numOfDoneHikes();
  setState(() => doneHikes = asyncResult);
  print(doneHikes);

}

数据库对象中的numOfDoneHikes函数:

Future<int> numOfDoneHikes() async {
  return Firestore.instance.collection(globalUserName)
    .document("Done Hikes").collection("Hike List").snapshots().length;
}

使用此代码,我不断收到doneHikes 打印

instance of Future<int>

【问题讨论】:

    标签: firebase dart flutter google-cloud-firestore future


    【解决方案1】:

    你可以使用等待:

    Future<int> numOfDoneHikes() async {
      return await Firestore.instance.collection(globalUserName)
        .document("Done Hikes").collection("Hike List").snapshots().length;
    }
    

    事实上,你甚至不需要等待,你可以这样做:

    Future<int> numOfDoneHikes() {
      return Firestore.instance.collection(globalUserName)
        .document("Done Hikes").collection("Hike List").snapshots().length;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 2021-10-25
      • 2019-07-08
      • 2021-04-06
      相关资源
      最近更新 更多