我有一个简单的责任,我想学点东西。 如何使用TextView在Firebase数据库中显示数据?
mDatabase = FirebaseDatabase.getInstance().getReference("MyData");
mDatabase.child("Dog").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String txt = dataSnapshot.getValue(String.class);
Splash_Title.setText(txt);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我可以用这种方法显示它,但我想知道是否有更短的方法。
我想用数据“Dog”获取TextView的值 提前谢谢。
{
"MyData" : {
"Cat" : "x",
"Dog" : "y"
}
}
答案 0 :(得分:0)
正如弗兰克所说,你所做的是正确的,因为你指出MyData节点内只有1个值。如果您只需要获取该值,那么这可能很棒,但是如果您想从MyData对象获取所有值,您应该编写一个POJO类,然后使用foreach获取值,这将带给您所有来自MyData的值
mDatabase = FirebaseDatabase.getInstance().getReference("MyData");
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DatasnapShot snapShot : dataSnapshot.getChildren())
MyData md = snapShot.getValue(MyData.class);
String dog = md.getDog(); //get dog name
String cat = md.getCat(); // get cat name
//And then just do a log to print or see those values
Log.e("DogAndCatName",""+dog+cat);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
并且您只需要另一个名为MyData.class
通过这个我们创建对象MyData来访问dataSnapshot请求中该对象的每个数据。
public class MyData {
private String Dog;
private String Cat;
public MyData() {
}
public String getDog() {
return Dog;
}
public void setDog(String dog) {
Dog = dog;
}
public String getCat() {
return Cat;
}
public void setCat(String cat) {
Cat = cat;
}
}