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>.

中的问题