在Dart保存到Firebase的错误字段中使用参数和变量初始化
我进入了飞镖/颤振的发展阶段,我慢慢地发现了一些非常奇怪的事情 比方说在Dart保存到Firebase的错误字段中使用参数和变量初始化,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我进入了飞镖/颤振的发展阶段,我慢慢地发现了一些非常奇怪的事情 比方说 class Person{ final String name; final String age; final String address; Person({this.name, this.address,this.age}); } 然后我尝试使用这个类并将参数传递给这个类 person = Person(name:"killedVariableSwitch", age:"1
class Person{
final String name;
final String age;
final String address;
Person({this.name, this.address,this.age});
}
然后我尝试使用这个类并将参数传递给这个类
person = Person(name:"killedVariableSwitch", age:"1024", address:"Mars");
因此,我使用上述类将其保存在其他数据库或任何需要上述实现的类中。完全没有秩序。正如我所记得的,我以前使用其他程序编写的代码会自动更正
你们可以注意到,我在那个论点中改变了年龄和地址的位置。现在数据库持有key:value对是错误的
print(person.fromDatabase);
name: killedVariableSwitch, address:1024, age:Mars.
这是所需的输出还是应该自行更正?。我以前从未体验过android或java。
或者我做错了什么
更多的例子来自我的行为
在Firebase Cloudfirestore中保存后
谢谢。是的,确实是这个原因,如果我在main类中的顺序不同,那么传递的参数会产生真正的副作用 我想Dart需要解决这个问题。否则我就大错特错了
@JsonSerializable()
class User extends Equatable {
final String id;
final String name;
final String mobileNo;
final String email;
final String picture;
final String dateCreated;
final String fcmTokenId;
const User(
{this.id,
this.name,
this.mobileNo,
this.email,
this.picture,
this.dateCreated,
this.fcmTokenId});
记者电话
context.read<HomeBloc>().add(AddUser(User(
name: "NoName",
dateCreated:DateTime.now().toString(),
email: "s.puspahraj.com",
fcmTokenId: "dddadasda",
picture: "ddsf",
mobileNo: _user.mobileNo)))
@JsonSerializable()
class UserEntity extends Equatable {
final String id;
final String name;
final String mobileNo;
final String email;
final String picture;
final String dateCreated;
final String fcmTokenId;
context.read().add(添加用户(
姓名:“NoName”,
dateCreated:DateTime.now().toString(),
电子邮件:“s.puspahraj.com”,
fcmTokenId:“dddadasda”,
图片:“ddsf”,
mobileNo:_user.mobileNo)))
@JsonSerializable()
类UserEntity扩展了equalable{
最终字符串id;
最后的字符串名;
最终字符串mobileNo;
最终字符串电子邮件;
最后的字符串图片;
创建最终字符串日期;
最终字符串fcmTokenId;
把这里搞混了
Map<String, Object> toDocument() {
return {
"id": id,
"name": name,
"dateCreated": dateCreated,
"email": email,
"picture": picture,
"mobileNo": mobileNo,
"fcmTokenId": fcmTokenId
};
*****************************
@override
Future<void> addUser(User user) {
return usersCollection
.add(user.toEntity().toDocument())
.then((value) => _logger.d('user added'))
.catchError((error) => _logger.e("Failed to add user: $error"));
映射到文档(){
返回{
“id”:id,
“姓名”:姓名,
“dateCreated”:dateCreated,
“电子邮件”:电子邮件,
“图片”:图片,
“mobileNo”:mobileNo,
“fcmTokenId”:fcmTokenId
};
*****************************
@凌驾
未来添加用户(用户){
返回用户集合
.add(user.toEntity().toDocument())
.然后((值)=>\u logger.d(“用户添加”))
.catchError((error)=>_logger.e(“添加用户失败:$error”);
因此,在放置这些参数时,我必须非常小心!您只是未能正确地保存/写入数据库,dart中的命名参数不需要像构造函数中那样有序,才能在模型类中保持与api响应相同的字段正确序列。\n但我想这在我身上经常发生,我想,或者我没有I don’我不关心命名参数。是否有关于传递参数的文档?