'DataSnapshot' 类没有实例 getter 'snapshot'

时间:2021-04-03 16:20:13

标签: flutter firebase-realtime-database firebase-authentication

我是 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。 任何帮助都非常感谢。

0 个答案:

没有答案