如何使用 Flutter 将复杂的 JSON 数据存储到 Firebase 实时数据库中
Posted
技术标签:
【中文标题】如何使用 Flutter 将复杂的 JSON 数据存储到 Firebase 实时数据库中【英文标题】:How to store complex JSON data into the firebase realtime database using flutter 【发布时间】:2020-03-22 14:38:16 【问题描述】:我是 Flutter 的新手,我正在尝试处理复杂的 json 结构,但我不知道如何使用 flutter 将复杂的 JSON 数据存储到 firebase 实时数据库中。这里我也附上了我的 JSON 结构和数据模型类结构.有没有相关的文章或教程。
JSON Structure:
"users":
"John@gmail.com":
"name": "John Doe",
"Country": "United Kingdom",
"verified_phone": true,
"ID_verification": False,
,
"Properties":
"Properties":[
"propertiename":"Hilton_Common",
"Role" : "owner",
"propertiename":"Carraige_guest_house",
"Role" : "staff",
....
....
],
"Reservations":
"Properties": [
"propertiename":"Hilton_Common"
"Guest" : "Primary_guest",
"propertiename":"Carraige_guest_house"
"Guest" : "Aditional",
....
....
],
User model:
class User
String key;
final List<Host> host;
final List<User_Reservation> reservation;
String nameformlogin, phone, email;
String verifiedphone, idverification;
var list;
User(
this.key,
this.nameformlogin,
this.phone,
this.email
this.verifiedphone,
this.idverification,
this.host,
this.reservation,
);
factory User.fromJson(Map<String, dynamic> json)
return new User(
nameformlogin: json["nameformlogin"],
phone: json["phone"],
email: json["email"],
verifiedphone: json["verifiedphone"],
idverification: json["idverification"],
host: json["host"],
reservation:json["reservation"]
);
toJson()
return
'name': nameformlogin,
'county':phone,
'email': email,
'verifiedphone':verifiedphone,
'idverification':idverification,
'host':host,
'reservation':reservation
;
class Host
String propertiesname, role;
Host(this.propertiesname, this.role);
factory Host.fromJson(Map<String, dynamic> json)
return new Host(propertiesname: json['propertiesname'], role: json['role']);
class User_Reservation
String propertiesname, guest;
User_Reservation(this.propertiesname, this.guest);
factory User_Reservation.fromJson(Map<String, dynamic> json)
return new User_Reservation(
propertiesname: json['propertiesname'], guest: json['guest']);
【问题讨论】:
【参考方案1】:创建实时数据库 (rtd) 参考实例, 将数据存储为键值:
void storeData
dataBaseRef.child(user.key).set(
"name":user.name,
"host":user.host,
...
);
如果你不知道如何连接和创建 RTD 的参考,你可以参考这个youtube tutorial
【讨论】:
变量名没有问题。这是一个简单的字符串变量,我可以将它存储在数据库中。这里的实际问题例如:主机是一个复杂变量的数组,具有结构------ class Host String propertiesname, role;主机(this.propertiesname,this.role);工厂 Host.fromJson(Map以上是关于如何使用 Flutter 将复杂的 JSON 数据存储到 Firebase 实时数据库中的主要内容,如果未能解决你的问题,请参考以下文章