snapshot.value []未定义,错误将快照转换为对象

发布于 2025-02-09 07:00:29 字数 1793 浏览 1 评论 0原文

我是新手的颤音,我的模型类方法触点有错误。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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恋竹姑娘 2025-02-16 07:00:29

它不知道snapshot.value是一张地图,因此您需要告诉它。您可以尝试一下:

 Contact.fromSnapshot(DataSnapshot snapshot) {
    Map<dynamic, dynamic> map = snapshot.value! as Map<dynamic, dynamic>;
    _id = snapshot.key;
    _firstName = map['firstName'];
    _lastName = map['lastName'];
    _phone = map['phone'];
    _email = map['email'];
    _address = map['address'];
    _photoUrl = map['photoUrl'];
 }

It doesn't know snapshot.value is a map, so you need to tell it. You could try this:

 Contact.fromSnapshot(DataSnapshot snapshot) {
    Map<dynamic, dynamic> map = snapshot.value! as Map<dynamic, dynamic>;
    _id = snapshot.key;
    _firstName = map['firstName'];
    _lastName = map['lastName'];
    _phone = map['phone'];
    _email = map['email'];
    _address = map['address'];
    _photoUrl = map['photoUrl'];
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文