[英]Retrieving multiple data from firebase returning null
我正在使用Firebase數據庫在Android應用程序中存儲和讀取“俱樂部”列表。 下面是Json的表示形式。
{
"clubs" : [ {
"id" : 1,
"image" : {
"allocationByteCount" : 589824,
"byteCount" : 589824,
"config" : "ARGB_8888",
"density" : 320,
"generationId" : 212,
"height" : 384,
"mutable" : false,
"premultiplied" : true,
"recycled" : false,
"rowBytes" : 1536,
"width" : 384
},
"name" : "Axis"
}, {
"id" : 2,
"image" : {
"allocationByteCount" : 589824,
"byteCount" : 589824,
"config" : "ARGB_8888",
"density" : 320,
"generationId" : 214,
"height" : 384,
"mutable" : false,
"premultiplied" : true,
"recycled" : false,
"rowBytes" : 1536,
"width" : 384
},
"name" : "Allies"
}, {
"id" : 3,
"image" : {
"allocationByteCount" : 589824,
"byteCount" : 589824,
"config" : "ARGB_8888",
"density" : 320,
"generationId" : 216,
"height" : 384,
"mutable" : false,
"premultiplied" : true,
"recycled" : false,
"rowBytes" : 1536,
"width" : 384
},
"name" : "Neutrals"
} ]
}
我正在使用FirebaseAdapter類在Firebase數據庫上調用方法。 但是在嘗試獲得所有俱樂部時返回null。
波紋管有調用它的方法:
public List<BDClub> getClubs() {
list.clear();
database.getReference("clubs").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
System.out.println(dataSnapshot.getChildrenCount());
for(DataSnapshot array : dataSnapshot.getChildren()){
clubs = array.getValue(BDClub[].class);
for(BDClub c : clubs){
list.add(c);
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
return list;
}
有沒有辦法檢索俱樂部清單? 提前致謝。
查看您的Json表示形式,我認為clubs
是主要數據庫參考中的子級,因此您可以嘗試以下操作:
FirebaseDatabase.getInstance().getReference().child("clubs").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
System.out.println(dataSnapshot.getChildrenCount());
for(DataSnapshot array : dataSnapshot.getChildren()){
clubs = array.getValue(BDClub[].class);
for(BDClub c : clubs){
list.add(c);
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
提示:不要從函數中返回這樣的列表,因為這些調用是異步發生的,因此每次您都有很大的機會獲得空列表。使用監聽器: 如何在android中創建我們自己的監聽器接口?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.