gpt4 book ai didi

flutter - 如何将来自firestore的值存储在Dart的变量中?

转载 作者:行者123 更新时间:2023-12-03 04:20:19 26 4
gpt4 key购买 nike

我想在 firestore 中获取一个值并保存在一个局部变量中。我可以打印该值,但无法将该值保存在变量中。以下代码为该变量提供了空值。

_onPressed() async {
String userType;
var firebaseUser = await FirebaseAuth.instance.currentUser();
firestoreInstance
.collection("users")
.document(firebaseUser.uid)
.get()
.then((DocumentSnapshot document) {
userType = document['userType'];
});
print(userType);
}

最佳答案

一个 DocumentSnapshot本身不是数据。您可以使用 data 从中提取数据 setter/getter 。因此,您可以尝试获取 userType像这样..

_onPressed() async {
String userType;
var firebaseUser = await FirebaseAuth.instance.currentUser();
firestoreInstance
.collection("users")
.document(firebaseUser.uid)
.get()
.then((DocumentSnapshot snapshot) {
var document = snapshot.data;
userType = document['userType'];
});
print(userType);
}
then 的大括号外 block ,你仍然得到它 null因为 then里面的代码块大括号在 get() 之后执行 future 解决。虽然 future 仍在处理中, print(userType)已执行,因此当时为空。要等待处理,您需要 await get()打电话也是这样。。
_onPressed() async {
String userType;
var firebaseUser = await FirebaseAuth.instance.currentUser();
DocumentSnapshot snapshot = await firestoreInstance.collection("users").document(firebaseUser.uid).get();

var document = snapshot.data;
userType = document['userType'];

print(userType);
}

关于flutter - 如何将来自firestore的值存储在Dart的变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63032447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com