首页 > 解决方案 > 空安全后如何在 Flutter 和 Firebase 中构建模型

问题描述

我正在使用颤振处理一个项目,在包中进行了一些更改后,我在为我的应用程序创建新模型时遇到了问题。目前,我创建了这个模型:

// @dart=2.9


import 'package:cloud_firestore/cloud_firestore.dart';

class UserModel {
  String uid;
  String name;
  String email;
  int posts;
  String profileImage;
  Timestamp lastSeen;

  UserModel({this.uid, this.name, this.email, this.profileImage, this.posts, this.lastSeen});

  factory UserModel.fromDocument(DocumentSnapshot _snapshot) {
    var _data = _snapshot.data;
    return UserModel(
      uid: _snapshot.id,
      name: _data["name"],
      email: _data["email"],
      profileImage: _data["profileImage"],
      posts: _data["posts"],
      lastSeen: _data["lastSeen"],
    );
  }
}

并且颤振突出显示括号内的数据,并显示以下消息“运算符'[]'未为类型'Object Function()'定义。”

关于这里发生了什么、发生了什么变化以及我们如何解决它的任何想法?

谢谢!!

标签: firebasefluttergoogle-cloud-firestoreflutter-dependencies

解决方案


将此用于空安全

factory UserModel.fromDocument(DocumentSnapshot _snapshot) {
  Map<String, dynamic> _data = snapshot.data!.data() as Map<String, dynamic>;
  return UserModel(
    uid: _snapshot.id,
    name: _data["name"],
    email: _data["email"],
    profileImage: _data["profileImage"],
    posts: _data["posts"],
    lastSeen: _data["lastSeen"],
  );
}

推荐阅读