从firebase数据库填充textView

时间:2017-02-28 22:16:37

标签: android json firebase textview firebase-realtime-database

我正在尝试从firebase数据库填充TextView。这是示例json文件。

amidi -l
Dir Device    Name
IO  hw:1,0,0   MIDI 1

这是我的android代码:

{
 "Player" : {
  "Club" : "Valley Rovers",
  "Name" : "John Murphy"
 }
}

我想将John Murphy这个名字添加到firebase数据库中,并且这样做TextView mPlayer将填充John Murphy。

1 个答案:

答案 0 :(得分:3)

你正在接生孩子"姓名"你的代码两次(导致播放器/名称/名称)。将其从mDatabase初始化中删除:

mDatabase = FirebaseDatabase.getInstance().getReference("Player");

并且您从未真正从收到的DataSnapshot中获取值。为此,请使用:

mDatabase.child("Name").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String playerName = dataSnapshot.getValue(String.class);
            mPlayer.setText(playerName);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

如果将来有人想要使用POJO方法处理此问题,请按照以下示例进行操作:

mDatabase.child("Name").addValueEventListener(new ValueEventListener()移除孩子("名称") 除非您想要获取"名称"只有孩子。还要记住对mDatabase初始化进行校正。

mDatabase.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // String playerName = dataSnapshot.getValue(String.class);
        PlayerModel playerModel =  dataSnapshot.getValue(PlayerModel.class);
         ((TextView)findViewById(R.id.textviewName)).setText(playerModel.getName());
        ((TextView)findViewById(R.id.textviewClub)).setText(playerModel.getClub());
        // mPlayer.setText(playerName);
    }
相关问题