Dart 在Flatter中将数据存储到firebase中的模型
我正在尝试将数据存储在firebasedatabase中的模型数组中 我的firebasedatabase响应如下所示:Dart 在Flatter中将数据存储到firebase中的模型,dart,flutter,Dart,Flutter,我正在尝试将数据存储在firebasedatabase中的模型数组中 我的firebasedatabase响应如下所示: {-Ku3EYNaR_E5XVhAij2w: {customerAddress: Ram, customerMobileNumber: 921212121211, CustomerName: Ram, customerImageURL: }, -Ku3F6_0jro_5CI7FDsY: {customerAddress: Qweqweqwe, customerMobileN
{-Ku3EYNaR_E5XVhAij2w: {customerAddress: Ram, customerMobileNumber: 921212121211, CustomerName: Ram, customerImageURL: }, -Ku3F6_0jro_5CI7FDsY: {customerAddress: Qweqweqwe, customerMobileNumber: 888888, CustomerName: Siva, customerImageURL: }}
我的模型是这样的
class listOfUsers {
String name = '';
String phoneNumber = '';
String address = '';
listOfUsers(this.name,this.phoneNumber,this.address);
}
List<listOfUsers>userInformation_ = <listOfUsers>[];
getusersinfo() async{
FirebaseUser user = await FirebaseAuth.instance.currentUser();
if (user != null) {
_messagesRef
.child(user.uid)
.child('x')
.onValue
.listen((Event event) {
print('value: ${event.snapshot.value}');
var a = event.snapshot.value;
for(var child in event.snapshot.value){
print(child);
}
});
}
}
getting error as
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
NoSuchMethodError: Class '_InternalLinkedHashMap' has no instance getter 'iterator'.
Receiver: _LinkedHashMap len:2
类列表用户{
字符串名=“”;
字符串phoneNumber='';
字符串地址=“”;
用户列表(this.name、this.phoneNumber、this.address);
}
ListuserInformation_U8;=[];
getusersinfo()异步{
FirebaseUser=等待FirebaseAuth.instance.currentUser();
如果(用户!=null){
_消息引用
.child(user.uid)
.child('x')
.onValue
.listen((事件){
打印('value:${event.snapshot.value}');
var a=event.snapshot.value;
for(event.snapshot.value中的变量子级){
印刷品(儿童);
}
});
}
}
将错误获取为
[VERBOSE-2:dart_error.cc(16)]未处理的异常:
NoSuchMethodError:类“\u InternalLinkedHashMap”没有实例获取程序“迭代器”。
接收器:_LinkedHashMapLen:2
有人能帮我将firebase数据库中的数据存储到Flatter中的模型吗?您可以手动编写序列化方法和反序列化构造函数,从类实例创建JSON/获取JSON并将值分配给实例字段 或者,您可以使用其中一种代码生成解决方案来自动生成代码
- (提供不可变的类型)
- (提供不可变的类型)
映射,请给出绑定数据的示例(\u InternalLinkedHashMap
是映射的内部表示形式),不需要对其进行解码,它已经被解码了。您可以对它进行编码
以获得可以使用HTTP请求发送的JSON字符串。映射
在Dart代码中通常被称为JSON,即使它实际上还没有被称为JSON,这有点令人困惑(在将其编码为字符串之前)。如果我们知道可以访问的密钥,我以前做过,但这里是运行时firebase uniqueid,所以我使用for循环并尝试迭代,但迭代不可用。您可以从映射中获取所有信息。例如,使用map.keys
像map.keys.forEach((k)=>print('$k:${map[k]}“);
不确定这是否是您要查找的内容。如果我使用的是JSON.decode(event.snapshot.value);然后将错误显示为[VERBOSE-2:dart_error.cc(16)]未处理的异常:类型“\u InternalLinkedHashMap”不是“源”类型“字符串”的子类型,其中\u InternalLinkedHashMap来自dart:集合字符串来自dart:Core如果是映射
(\u InternalLinkedHashMap
是映射的内部表示形式),请给出绑定数据的示例,不需要对其进行解码,它已经解码。您可以对其进行编码
以获取可以使用HTTP请求发送的JSON字符串。在Dart代码中,映射
通常被称为JSON,这有点令人困惑,即使它实际上还没有(在将其编码为字符串之前)。如果我们知道可以访问的密钥,我以前做过,但这里是运行时firebase uniqueid,所以我使用for循环并尝试迭代,但迭代不可用。您可以从映射中获取所有信息。例如,使用map.keys
likemap.keys.forEach((k)=>print('$k:${map[k]}'));
不确定这是否是您要找的。