我一直在编写一种搜索用户的方法。分析器显示参数类型“User?Function(User)”不能分配给参数类型“User?Function(User?)”。
这个错误是什么意思?请告诉我这段代码有什么问题?
Stream<User?> get currentUser {
return _firebaseAuth.authStateChanges().map((User user){
return user != null ? User.fromFirebase(user, 0) : null;
});
}
答案 0 :(得分:0)
此处的 .map
方法要求您传递一个函数,该函数的参数为可空用户 (User?
),并返回可空用户。但是您已将该参数定义为不可为空的用户。将 ?
添加到您的参数类型以使其可以为空。
Stream<User?> get currentUser {
return _firebaseAuth.authStateChanges().map((User? user){
return user != null ? User.fromFirebase(user, 0) : null;
});
}
更新
我使用了 CLASS User,同时使用了 Firebase 的 OBJECT User。这导致了混淆,因为我对两个完全不同的结构使用了相同的名称。
Stream<Client?> get currentUser {
return _firebaseAuth
.authStateChanges()
.map((User? user) =>
user != null ? Client.fromFirebase(user) : null);
}