使用addlistnerForSingleValueEvent从firebase检索数据时出错

时间:2018-03-15 13:06:49

标签: java android firebase firebase-realtime-database

这是我的构造函数类

public class selected_item {
    private String Items;
    public selected_item() {
    }

    public selected_item(String items) {
        this.Items = items;
    }

    public String getItems() {
        return Items;
    }
}

我的mainActivity为

db = FirebaseDatabase.getInstance().getReference();
db.child("Category").child(s).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot)
    {
        selected_item Items =dataSnapshot.getValue(selected_item.class);
        System.out.println(Items);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
    }
});

我得到的输出是

I/System.out: com.strease.user.strease.selected_item@3945e4f

这不是必需的,也不存在于我的数据库的任何地方。所需的输出应为

请帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

您的对象没有toString()方法,因为Java为您提供了打印方法中对象的引用。

尝试打印项目属性:

 System.out.println(Items.getItems());

您还可以覆盖toString()方法以打印可读的内容:

public class selected_item {
    private String Items;
    public selected_item() {
    }

    public selected_item(String items) {
        this.Items = items;
    }

    public String getItems() {
        return Items;
    }

       @Override
        public String toString() {
            return Items;
        }

    }

仍然是用户:

 System.out.println(Items);