我是Flutter的新手,所以请多多包涵。因此,一旦我访问主页,就需要立即从Firestore中获取User对象。问题是,当前,我正在尝试在initState()函数中提取User,并且在提取User对象之前触发了构建函数(需要用户对象),从而导致异常。
这是我的用户在initState()中获取代码
fun ShowFragmentOne() {
val transaction = manager.beginTransaction()
val fragment = FragmentOne()
transaction.replace(R.id.one, fragment)
transaction.addToBackStack(null)
transaction.commit()
isFragmentOneLoaded = true
}
fun ShowFragmentTwo() {
val transaction = manager.beginTransaction()
val fragment = FragmentTwo()
transaction.replace(R.id.two, fragment)
transaction.addToBackStack(null)
transaction.commit()
isFragmentOneLoaded = false
}
此外,我刚刚发现该代码永远不会到达setState块。不知道为什么。我知道流Firestore ref是正确的。关于如何重新组织代码的任何建议?谢谢!
答案 0 :(得分:0)
在构建函数内部立即将流构建器用作小部件。
StreamBuilder<DocumentSnapshot>(
stream: Firestore.instance
.collection("users")
.document(widget.uid)
.snapshots(),
builder:
(BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
return Text(snapshot.data.data.userName); // example
},
);