【发布时间】:2020-12-30 22:20:31
【问题描述】:
我试图从我的数据库中获取一个 int 类型的值,但它返回了一个空值
我尝试在构建函数内部和构建外部调用该方法,甚至更进一步在 initState 内部调用它,但没有成功是什么问题?
Widget build(BuildContext context){...}
int getSnapShotDataAsInt(String child){
FutureBuilder(
future: databaseReference
.child("users")
.child(_firebaseUser.uid)
.child(child)
.once(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData && snapshot.data != null) {
return snapshot.data.value;
} else {
return CircularProgressIndicator();
}
}
);
}
【问题讨论】:
-
诸如“但没有成功”和“它对我不起作用”之类的陈述非常难以帮助。请记住,Stack Overflow 是一个出了名的低效交互式调试器,我们需要确切地知道哪一行没有按照您的预期执行,以及它做了什么。那么如果在
return snapshot.data.value上设置断点,snapshot.data.value会显示什么值?您能否print该值,并在您的问题中向我们展示更新后的代码及其输出? -
在
/users/$uid看到 JSON 也很好(作为文本,请不要截图)。您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。
标签: firebase flutter firebase-realtime-database