gpt4 book ai didi

firebase - 在 nullsafety 之后将 firestore 与 json_serializable 一起使用

转载 作者:行者123 更新时间:2023-12-05 06:48:39 25 4
gpt4 key购买 nike

我正在使用 json_serializable 和 firestore。 json_serializable 创建一个以 Map 作为参数的工厂方法,但在 nullsafety 更改后,firestore 开始返回 Map ?作为文档数据,现在我无法调用 json_serializable 工厂来映射我的 firestore 类型,因为显示此错误消息: The argument type 'Map<String, dynamic>?' can't be assigned to the parameter type 'Map<String, dynamic>'

有人可以帮我解决这个问题吗?我不能再将 json_serializable 与 firestore 一起使用了吗?

我写了这个例子:

class Entity {
const Entity({required this.id});

final String id;

factory Entity.fromJson(Map<String, dynamic> json) => _$EntityFromJson(json);
Map<String, dynamic> toJson() => _$EntityToJson(this);
}

class Repository {
Stream<List<Entity>> list() {
return FirebaseFirestore.instance.collection('entity').snapshots().map((event) {
return event.docs.map((e) {
return Entity.fromJson(
e.data() // The argument type 'Map<String, dynamic>?' can't be assigned to the parameter type 'Map<String, dynamic>'
);
}).toList();
});
}
}

最佳答案

我不知道这是正确的方法,但我使用“as”关键字将类型从 Object 转换为 Map Image example

doc.data() as Map<String, dynamic>

关于firebase - 在 nullsafety 之后将 firestore 与 json_serializable 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66772767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com