Моя модель базы данных Firebase выглядит следующим образом:
dbRef
|___userId
|____Cars
|____Alfa_Romeo
| |____Year: 1992
| |____Price: 10000
|__________Audi
| |____Year: 1998
| |____Price: 3000
|___________BMW
|____Year: 2001
|____Price: 7000
Тогда у меня есть Class Car, который выглядит как
import 'package:json_annotation/json_annotation.dart';
part 'car.g.dart';
/// An annotation for the code generator to know that this class needs the
/// JSON serialization logic to be generated.
@JsonSerializable()
class Car {
Carta(this.model, this.details);
String model;
List details;
factory Car.fromJson(Map<String, dynamic> json) => _$CarFromJson(json);
Map<String, dynamic> toJson() => _$CarToJson(this);
}
Теперь, когда я устанавливаю данные в Firebase, я получаю это:
dbRef
|___userId
|____Cars
|____Alfa_Romeo
|____Year: 1992
|____Price: 10000
... и я хочу, чтобы это было похоже на модель из первой диаграммы. Как я могу вложить детали в «модель» ребенка? Может ли кто-нибудь помочь мне с этим, пожалуйста?
РЕДАКТИРОВАТЬ: Просто чтобы убедиться, что я ясно, что я хочу. Этот код взят из примера команды Flutter docs :
import 'address.dart';
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable(explicitToJson: true)
class User {
String firstName;
Address address;
User(this.firstName, this.address);
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
Этот код генерирует следующий вывод:
name: John, address: {street: My st., city: New York}}
И я хочу, чтобы Джон стал ключом Child и адресом, который будет вложен внутрь, потому что может быть более одного массива адреса. Поле адреса должно стать ключом (оно будет уникальным), и тогда оно будет иметь карту предметов, и у каждого предмета будет только 2 поля с описанием и ценой.