Future<int> 无法从 Firebase 获取数据
Posted
技术标签:
【中文标题】Future<int> 无法从 Firebase 获取数据【英文标题】:Future<int> not able to get data from Firebase 【发布时间】:2019-08-10 13:08:54 【问题描述】:我正在尝试使用 Flutter 在 Firebase 中获取集合的长度。我有一个个人资料页面,可以加载您从数据库中完成的远足次数,但是当我打印变量时,我不断收到Future<int>
。我该如何解决这个问题?
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>
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于Future<int> 无法从 Firebase 获取数据的主要内容,如果未能解决你的问题,请参考以下文章
参数类型“Future<int>”不能分配给参数类型“int”
类型 'Future<dynamic>' 不是 Flutter 数据库创建中的“Future<int>”类型异常的子类型