【发布时间】:2022-01-04 21:16:32
【问题描述】:
我的这个函数给了我一个错误。
getCurrentOnLineUserInfo 函数正在尝试从当前登录用户的 Firebase 数据库中读取数据。
参数类型“Null Function(DataSnapshot)”不能分配给“Future Or Function(DataBaseEvent)”类型的参数
我正在学习一年前的教程,所以问题可能是代码太旧了。我可能需要新的语法什么的。
static void getCurrentOnLineUserInfo() async {
firebaseUser = await FirebaseAuth.instance.currentUser;
String userId = firebaseUser!.uid;
DatabaseReference reference =
FirebaseDatabase.instance.ref().child("user").child(userId);
print("getCurrentOnLineUser info executed!");
print('${firebaseUser!.email}${firebaseUser!.displayName}');
// errors below this
reference.once().then((DataSnapshot dataSnapshot) {
if (dataSnapShot!.value != null) {
userCurrentInfo = Users.fromSnapshot(dataSnapshot);
}
});
}
}
这是我分配数据的班级。这个类没有给出错误
class Users {
String? id;
String? email;
String? phone;
String? name;
Users({this.id, this.email, this.phone, this.name});
Users.fromSnapshot(DataSnapshot dataSnapshot) {
id = dataSnapshot.key!;
var data = dataSnapshot.value as Map?;
if (data != null) {
email = data?["email"];
name = data?["name"];
phone = data?["phone"];
}
}
}
【问题讨论】:
标签: firebase flutter firebase-realtime-database