我正在努力从我的 flutter 应用程序编写(并且还没有弄清楚如何读取)firebase 中的嵌套映射。我正在编写一个费用跟踪器,其中类别列表存储在每个日志中。我可以在 firebase 中映射、保存和检索原始字段,我迷路的地方是尝试将类别和子类别的映射写入 firebase,然后如何读取它们。
对类别和子类别的求解本质上是相同的,因此我将仅介绍其中之一。此外,我目前将类别 Id 作为类别类本身的键和一部分,稍后我将从类本身中删除 Id,因为我认为这是不好的做法,它目前在其他地方对我有所帮助。
我也一直在遵循 BLOC 方法,所以我也有模型可以转换为实体以处理 firebase。
这是一个类别(我已经删除了不相关的信息,例如 props 和 to string):
<pre>
class MyCategory extends Equatable {
final String id;
final String name;
final IconData iconData;
MyCategory({@required this.id, @required this.name, this.iconData});
MyCategoryEntity toEntity() {
return MyCategoryEntity(
id: id,
name: name,
iconCodePoint: iconData.codePoint.toString(),
iconFontFamily: iconData.fontFamily,
);
}
static MyCategory fromEntity(MyCategoryEntity entity) {
return MyCategory(
id: entity.id,
name: entity.name,
iconData: IconData(int.parse(entity.iconCodePoint),
fontFamily: entity.iconFontFamily),
);
}
}
</pre>
Run Code Online (Sandbox Code Playgroud)
该类别的模型实体具有 JsonSerialization 并且还使用 Icon codepoint/fontFamily,因为从 firebase …