snapshot.value []未定义,错误将快照转换为对象
我是新手的颤音,我的模型类方法触点有错误。fromSnapshot我想将Snapsot转换为对象。错误在snapshot.value [];
的括号上。这是错误:
未针对类型的“对象”定义运算符'[]'。尝试定义操作员'[]'。
我如何解决此错误?
import 'package:firebase_database/firebase_database.dart';
class Contact {
String? _id;
String? _firstName;
String? _lastName;
String? _phone;
String? _email;
String? _address;
String? _photoUrl;
//Constructor for add
Contact(this._firstName, this._lastName, this._phone, this._email,
this._address, this._photoUrl);
//Constructor for Edit
Contact.withId(this._id, this._firstName, this._lastName, this._phone,
this._email, this._address, this._photoUrl);
//Getters
String? get id => _id;
String? get lastName => _lastName;
String? get firstName => _firstName;
String? get phone => _phone;
String? get email => _email;
String? get address => _address;
String? get photoUrl => _photoUrl;
//setters
set firstName(String? firstname) {
this._firstName = firstName;
}
set lastName(String? lastname) {
this._lastName = lastName;
}
set phone(String? phone) {
this._phone = phone;
}
set email(String? email) {
this._email = email;
}
set address(String? adress) {
this._address = address;
}
set photoUrl(String? photoUrl) {
this._photoUrl = photoUrl;
}
Contact.fromSnapshot(DataSnapshot snapshot) {
_id = snapshot.key;
_firstName = snapshot.value!['firstName'];
_lastName = snapshot.value!['lastName'];
_phone = snapshot.value!['phone'];
_email = snapshot.value!['email'];
_address = snapshot.value!['address'];
_photoUrl = snapshot.value!['photoUrl'];
}
}
I am new to flutter, I have Error in my model class Method Contact.fromSnapshot in which i want to convert snapsot to object. Error is on the brackets of snapshot.value[];
. This is error:
The operator '[]' isn't defined for the type 'Object'. Try defining the operator '[]'.
How i can fix this error?
import 'package:firebase_database/firebase_database.dart';
class Contact {
String? _id;
String? _firstName;
String? _lastName;
String? _phone;
String? _email;
String? _address;
String? _photoUrl;
//Constructor for add
Contact(this._firstName, this._lastName, this._phone, this._email,
this._address, this._photoUrl);
//Constructor for Edit
Contact.withId(this._id, this._firstName, this._lastName, this._phone,
this._email, this._address, this._photoUrl);
//Getters
String? get id => _id;
String? get lastName => _lastName;
String? get firstName => _firstName;
String? get phone => _phone;
String? get email => _email;
String? get address => _address;
String? get photoUrl => _photoUrl;
//setters
set firstName(String? firstname) {
this._firstName = firstName;
}
set lastName(String? lastname) {
this._lastName = lastName;
}
set phone(String? phone) {
this._phone = phone;
}
set email(String? email) {
this._email = email;
}
set address(String? adress) {
this._address = address;
}
set photoUrl(String? photoUrl) {
this._photoUrl = photoUrl;
}
Contact.fromSnapshot(DataSnapshot snapshot) {
_id = snapshot.key;
_firstName = snapshot.value!['firstName'];
_lastName = snapshot.value!['lastName'];
_phone = snapshot.value!['phone'];
_email = snapshot.value!['email'];
_address = snapshot.value!['address'];
_photoUrl = snapshot.value!['photoUrl'];
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它不知道snapshot.value是一张地图,因此您需要告诉它。您可以尝试一下:
It doesn't know snapshot.value is a map, so you need to tell it. You could try this: