firebase - 函数在FLutter中返回null

标签 firebase flutter dart google-cloud-firestore

我正在尝试实现以下功能,但它为我提供了null。

具体而言,Future credit()不会更新变量值。数据库没有问题,因为如果我使用print(doc['value'])而不是value += doc['value'],则可以得到预期的结果。
看来,getCredit()是返回null的那个。

Future credit() async {
    final FirebaseUser user = await FirebaseAuth.instance.currentUser();
    final String uid = user.uid;
    int value = 0;
    Firestore.instance
        .collection('entries')
        .where("uid", isEqualTo: uid)
        .where("type", isEqualTo: "+")
        .orderBy("time", descending: true)
        .snapshots()
        .listen((data) => data.documents.forEach((doc) => value += doc['value']));
    print(value); // doesnt update value
    return value;
  }

  int getCredit() {
    credit().then((value) {print(value);});
    credit().then((value) {return value;});  // return mot working
  }

谢谢!

最佳答案

试试这个:

Future<int> getCredit() async {
  return await  credit();
}

关于firebase - 函数在FLutter中返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61914088/

相关文章:

Firebase Firestore : Is there an equivalent of @SerializedName?

flutter - 抽象类是否可以具有其他抽象类的返回类型的方法?

flutter - 如何避免在繁重的计算中卡住 UI

flutter - Flutter:无法显示AlertDialog

flutter - 如何在连接器中连接多个模型(ScopedModel)

android - 从Android API 23迁移到API 24

reactjs - 在 Next Js 中使用 Firebase 云消息推送通知

flutter 。如何测试集成测试没有溢出?

flutter - 错误 - 未处理的异常 : This widget has been unmounted,,因此状态不再具有上下文

java - 如何迭代由 firebase 随机生成的不同键值