如何从firebase数据库中获取子值?

时间:2017-12-03 18:46:47

标签: android firebase-realtime-database

我正在尝试从Firebase数据库获取值并将它们设置为文本视图。我的数据库有多个像图像的孩子。我想从中获取电话和地址值。我怎么能得到它们?我是Android新手,我在这里尝试了多个答案,但都失败了。任何人都可以帮我这个吗?

Here is how my DB screenshot

1 个答案:

答案 0 :(得分:0)

要获取该数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("Users");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String address = ds.child("Address").getValue(String.class);
            String phone = ds.child("Phone").getValue(String.class);
            Log.d("TAG", address + " / " + phone);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
usersRef.addListenerForSingleValueEvent(eventListener);

这是从单个用户获取地址的代码:

String uid = firebaseAuth.getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("Users").child(uid);
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String address = dataSnapshot.child("Address").getValue(String.class);
        Log.d("TAG", address);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
userRef.addListenerForSingleValueEvent(eventListener);