我創建了一個助手類,其中包括我想對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」)'。結果是一樣的,但它會爲我節省雙倍的費用。 –