Flutter 如何初始化模型以检查保存是否成功
我已经为我的球员建立了一个模型Flutter 如何初始化模型以检查保存是否成功,flutter,dart,Flutter,Dart,我已经为我的球员建立了一个模型 class Player { String uid; String name; Player({ required this.uid, required this.name, }); factory Player.fromFirestore(DocumentSnapshot doc) { Map data = doc.data()!; return Player( uid: data['uid']
class Player {
String uid;
String name;
Player({
required this.uid,
required this.name,
});
factory Player.fromFirestore(DocumentSnapshot doc) {
Map data = doc.data()!;
return Player(
uid: data['uid'],
name: data['name'],
);
}
factory Player.fromMap(Map data) {
return Player(
uid: data['uid'],
name: data['name'],
);
}
}
如果用户在TRY语句中失败,我将如何初始化用户。以前,如果失败,我只是将其作为null值传递。然后我会检查我的保存是否成功
@override
Future<Player> saveProfile({required String uid, required String name}) async {
try {
DocumentReference ref = db.collection(Paths.playersPath).doc(uid);
var data = {
'uid': uid,
'name': name,
};
ref.set(data, SetOptions(merge: true));
final DocumentSnapshot currentDoc = await ref.get();
user = Player.fromFirestore(currentDoc);
} catch (e) {
print('failed to save: $e');
//TODO how will I initialize the user because what I have tried below does not work
//user = new Player();
}
return user;
}
@覆盖
将来的saveProfile({必需的字符串uid,必需的字符串名称})异步{
试一试{
DocumentReference=db.collection(path.playersPath).doc(uid);
风险值数据={
“uid”:uid,
“名称”:名称,
};
ref.set(数据,SetOptions(合并:true));
最终文档Snapshot currentDoc=等待参考get();
user=Player.fromFirestore(currentDoc);
}捕获(e){
打印($e保存失败);
//TODO如何初始化用户,因为我在下面尝试的方法无效
//用户=新玩家();
}
返回用户;
}
你的意思是这样的:
@覆盖
将来的saveProfile({必需的字符串uid,必需的字符串名称})异步{
试一试{
DocumentReference=db.collection(path.playersPath).doc(uid);
风险值数据={
“uid”:uid,
“名称”:名称,
};
ref.set(数据,SetOptions(合并:true));
最终文档Snapshot currentDoc=等待参考get();
user=Player.fromFirestore(currentDoc);
}捕获(e){
打印($e保存失败);
最终数据={'uid':uid,'name':name};
user=Player.fromMap(数据);
}
返回用户;
}
很酷。谢谢你的帮助。我现在明白了。