从Firebase读取子值

时间:2019-04-15 20:59:40

标签: android

我只想从Firebase中获取一个数据。虽然做了很多努力,但未能成功 我的firebase数据的结构如下

enter image description here

并尝试在我的代码中进行类似的操作

        DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID");
    myRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String email = dataSnapshot.getValue(String.class);
            //do what you want with the email
            setDisplayName.setText(email);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            setDisplayName.setText("data not get" + databaseError );
        }
    });

1 个答案:

答案 0 :(得分:0)

如果只想接收电子邮件,则可以执行以下操作:

   DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String email = dataSnapshot.child("email").getValue().toString();
        //do what you want with the email
        setDisplayName.setText(email);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        setDisplayName.setText("data not get" + databaseError );
    }
});

如果您不想加载其他数据,则可以像这样直接查询电子邮件:

 DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID").child("email");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String email = dataSnapshot.getValue().toString();
        //do what you want with the email
        setDisplayName.setText(email);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        setDisplayName.setText("data not get" + databaseError );
    }
});