我是Firebase的新手 我有以下数据库
-Root
-IT
-KOKlB####nryPhkTaA
-name: value
-location: value
-website: value
-KOKlBBPh###nryPhkTaA
-name: value
-location: value
-website: value
-Media
-KOKlBBP##nryPhkTaA
-name: value
-location: value
-website: value
-KOKlBBPhm##yPhkTaA
-name: value
-location: value
-website: value
我的想法是想要将每个节点的子节点检索到listView 例如:我有一个列表视图,每行包含每个公司的名称,位置和网站。
这是我推送到数据库的方式
public class Company {
private String name;
private String location;
private String website;
public Company(){}
public Company(String name,String location, String website)
{
this.name=name;
this.location=location;
this.website=website;
}
public Map<String, Object> toMap()
{
HashMap<String, Object> result= new HashMap<>();
result.put("name",name);
result.put("location",location);
result.put("website",website);
return result;
}
public void addNewCompany(String category,String name,String location, String website)
{
Company company= new Company(name,location,city,website);
String key= mRootRef.child("0").child(category).push().getKey();
Map<String, Object> companyValues=company.toMap();
Map<String, Object> childUpdates=new HashMap<>();
childUpdates.put("0/"+category+"/" + key,companyValues);
mRootRef.updateChildren(childUpdates);
}
我是如何尝试检索
的 DatabaseReference mConditionRef=mRootRef.child(category);
mConditionRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
for (DataSnapshot dsp : dataSnapshot.getChildren()) {
CoLists.add(String.valueOf(dsp.getValue()));
for(String data:CoLists){
mCompanies.add(data);
}
但是这个检索列表包含类别根目录中的整个数据。我希望它是公司对象的列表。
谢谢
答案 0 :(得分:1)
您可以使用DataSnapshot的.getKey或.getValue()函数来获取所需的数据。