我是 Flutter 的新手,我一直在尝试根据特定用户从 Firebase 实时数据库返回数据,但我做不到。这是我正确知道的错误。 “‘DataSnapshot’类没有实例获取器‘snapshot’。”。这是我的代码。
FutureBuilder(
future: getCurrentUser()
.then((uId) => dBRef.child('Parents').child(uId).once()),
builder: (context, snapshot) {
if (snapshot.hasData) {
debugPrint('build widget: ${snapshot.data}');
// Build the widget with data.
return Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 10,
),
Text(
snapshot.data.snapshot.value['first_name'].toString() +
' ' +
snapshot.data.snapshot.value['last_name'].toString()
),
),
],
);
} else {
// We can show the loading view until the data comes back.
return CircularProgressIndicator();
}
},
),
我怀疑可能是问题的一件事是我的 uId 代码,因为在我注销并再次登录后我无法获得 uId,然后 uId 将变为空。这就是我获得 uId 的方式:
final _auth = FirebaseAuth.instance;
User loggedInUser;
Future<String> getCurrentUser() async {
try {
// ignore: await_only_futures
final user = await _auth.currentUser;
if (user != null) {
loggedInUser = user;
// print(loggedInUser.email);
// print(loggedInUser.uid);
return loggedInUser.uid;
} else {
return null;
}
} catch (e) {
// print(e);
return e;
}
}
请记住,用户数据存储在“Parents”中,密钥是用户注册时 Firebase 本身生成的用户 ID。 任何帮助都非常感谢。