【发布时间】:2021-07-14 09:30:00
【问题描述】:
我正在使用 Firebase 创建身份验证服务,并且我有 UserModel 来处理用户数据,我有一个带有函数的类:
class UserModel extends ChangeNotifier {
late String uid;
late String username;
late String email;
late String password;
late String type;
UserModel.empty();
UserModel(
String uid, String username, String email, String password, String type) {
this.uid = uid;
this.username = username;
this.email = email;
this.password = password;
this.type = type;
}
Map<String, dynamic> toMap(UserModel user) {
var data = Map<String, dynamic>();
data["uid"] = user.uid;
data["nickname"] = user.username;
data["email"] = user.email;
data["password"] = user.password;
data["type"] = user.type;
return data;
}
}
还有一个我有验证功能的类:
class AuthenticationService {
final FirebaseAuth _firebaseAuth;
UserModel userModel = UserModel.empty();
final userRef = FirebaseFirestore.instance.collection('users');
AuthenticationService(this._firebaseAuth);
Stream<User?> get authStateChanges => _firebaseAuth.authStateChanges();
Future<void> addUserToDB(
{required String uid,
required String username,
required String email,
required String password,
required String type}) async {
userModel = UserModel(uid, username, email, password, type);
var firebaseUser = FirebaseAuth.instance.currentUser;
await userRef.doc(uid).set(userModel.toMap(userModel));
}
}
我有一个错误:
参数类型“Map
”不能分配给参数类型“Map ”。
有什么办法解决吗?
我暂时不使用UserModel,但我真的很想修复它。
【问题讨论】:
-
尝试将toMap方法的返回类型改为
Map<dynamic, dynamic>
标签: firebase flutter dart google-cloud-firestore