Flutter 中的对象映射到实时数据库 Firebase
Object Mapping in Flutter to Realtime DB Firebase
我想在 Firebase 实时数据库中保存我的对象列表。问题是,当我将我的对象保存在那里时,它们没有自动生成的密钥,它们的密钥是 0、1、2,...:
我正在这样映射我的 Poll 对象:
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'allowBarChart': allowBarChart,
'allowPieChart': allowPieChart,
'description': description,
'custom-questions': customQuestions != null
? List<dynamic>.from(customQuestions.map((x) => x.toJson()))
: [],
'choice-questions': choiceQuestions != null
? List<dynamic>.from(choiceQuestions.map((x) => x.toJson()))
: [],
};
我的问题是:怎么做,所以每个值的键不是 0,1,2,3,... 它应该是从 firebase 自动生成的,例如:1fdDfasLPO3g。我希望你明白我的意思。
提前致谢!
当 Firebase SDK 遇到 List
时,它会映射到 JSON 数组,该数组使用顺序数字索引存储,如您分享的屏幕截图所示。无法更改此映射。
如果您想使用 Firebase 的按键(目前以 -M
开头)存储项目,您应该在您的应用程序代码中生成这些按键(通过调用 push()
),并存储Map<string, dynamic>
.
中的问题
我想在 Firebase 实时数据库中保存我的对象列表。问题是,当我将我的对象保存在那里时,它们没有自动生成的密钥,它们的密钥是 0、1、2,...:
我正在这样映射我的 Poll 对象:
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'allowBarChart': allowBarChart,
'allowPieChart': allowPieChart,
'description': description,
'custom-questions': customQuestions != null
? List<dynamic>.from(customQuestions.map((x) => x.toJson()))
: [],
'choice-questions': choiceQuestions != null
? List<dynamic>.from(choiceQuestions.map((x) => x.toJson()))
: [],
};
我的问题是:怎么做,所以每个值的键不是 0,1,2,3,... 它应该是从 firebase 自动生成的,例如:1fdDfasLPO3g。我希望你明白我的意思。 提前致谢!
当 Firebase SDK 遇到 List
时,它会映射到 JSON 数组,该数组使用顺序数字索引存储,如您分享的屏幕截图所示。无法更改此映射。
如果您想使用 Firebase 的按键(目前以 -M
开头)存储项目,您应该在您的应用程序代码中生成这些按键(通过调用 push()
),并存储Map<string, dynamic>
.