迁移到空安全后,无法从firestore保存模型中的数据



因此,我有一个用户模型,我想在其中存储firestore中文档的值,为此我有以下代码:-

import 'package:cloud_firestore/cloud_firestore.dart';
class UserModel
{
final String? id;
final String? username;
final String? email;
final String? url;
final String? androidNotificationToken;
UserModel({
this.id,
this.username,
this.email,
this.url,
this.androidNotificationToken,
});
factory UserModel.fromDocument(DocumentSnapshot doc)
{
return UserModel(
id: doc.data()['id'], //error
username: doc.data()['username'],//error
email: doc.data()['email'],//error
url: doc.data()['url'],//error
androidNotificationToken: doc.data()['androidNotificationToken'],//error
);
}
}

我面临的错误是,在我的代码中标记的doc.data((后面的方括号上有一条红线显示了错误。错误为:-

The method '[]' can't be unconditionally invoked because the receiver can be 'null'.

我发现的一个修复方法是将doc.data((['id']替换为(动态的doc.data(['id]。那么,这是最好的方法吗?

您应该替换:

doc.data() as dynamic['id']

带有:

doc.data() as Map<String, dynamic>['id']

DocumentSnapshot.data的类型为Map<String, dynamic>

查看cloud_firestore 2.0.0的迁移指南。

最新更新