我创建了一个助手类,其中包括我想对FirebaseDatabase中的数据执行的函数和过程。Android - 从DataSnapShot获取对象 - firebase数据库
下面的函数是为了让所有的帖子在帖子节点在fireabseDataBase:
public static Jobs getAllJobs() {
Posts posts= new Posts();
postsDBRef= FirebaseDatabase.getInstance().getReference("posts").getRef();
postsDBRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot jobSnapshot: dataSnapshot.getChildren()) {
// TODO: handle the post
String key = jobSnapshot.getKey();
//here
Post post= jobSnapshot.child(key).getValue(Post.class);
// and here
posts.add(post);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i(getClass().getName().toString(), ": " + databaseError.getMessage());
}
});
return posts;
}
在onDataChange
功能,我在数据试图环和检索,虽然同时记录我得到的数据,但帖子对象不断给空
这里的数据看怎么样在火力数据库
{
"posts" : {
"-Kr9-ii-ArpC3fLuuGnb" : {
"address" : "sfhhfg",
"applied" : false,
"currency" : "le",
"description" : "ehdhyf",
"latitude" : 0,
"longitude" : 0,
"noOfWorkers" : 2,
"rating" : 0,
"reported" : false,
"salary" : "1250",
"title" : "rgchu",
"userId" : 0
},
"-Kr94BDkdEZrmxmjxv_Z" : {
/../
},
"-Kr9Dz3S0BQEYv4VO2l3" : {
/../
},
"-Kr9XqDPUvCRcv0lwFy_" : {
/../
}
}
}
这里就是上午摹从Debugger ETTING在单个环路
DataSnapshot {键= -Kr9-II-ArpC3fLuuGnb,值= {地址= sfhhfg, 评级= 0,标题= rgchu,报道=假,描述= ehdhyf,用户id = 0, 经度= 0,noOfWorkers = 2,纬度= 0,货币=乐,应用=假, 工资= 1250}}
任何想法,我究竟做错了什么?
我们无法知道'getDataBaseReference(“posts”)'返回了什么,我们也不知道'posts'中的JSON是什么样的。请确保您的问题包含[重现问题所需的最低完整信息](http://stackoverflow.com/help/mcve)。当你分享JSON时,一定要将它作为文本分享(没有截图)。您可以通过点击[Firebase数据库控制台](https://console.firebase.google.com/project/_/database/data)中的“导出JSON”链接来获取此信息。 –
@FrankvanPuffelen增加了额外的信息,谢谢你指出缺失的信息 –
getReference(“posts”)。getRef()' - >'getReference(“posts”)'。结果是一样的,但它会为我节省双倍的费用。 –