Firebase函数返回子值

时间:2018-04-30 07:20:37

标签: android firebase firebase-realtime-database

我需要一个具有两个参数的函数,(UserID和子键)它应该从firebase返回child的值。我想要这样的东西

public String getValue("user1", "Age")
{

//something to do

return age;

}

它应该返回孩子的价值。

这就是我的表现:

private String getValue(String parent, final String child) {

    final String[] val = new String[1];

    database.getReference(parent).addListenerForSingleValueEvent(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for (DataSnapshot snapshot : dataSnapshot.getChildren()) {

                String key = snapshot.getKey();
                String value = ""+snapshot.getValue(String.class);

               if(key.equals(child))
               {
                   val[0] = value;
                   break;
               }
            }

        }

        @Override
        public void onCancelled(DatabaseError error) {

        }
    });


    return val[0];
}

这就是我的数据库的样子:

enter image description here

1 个答案:

答案 0 :(得分:0)

试试这个。我假设您的database = FirebaseDatabase.getInstance().getReference("Users")

private String getValue(String parent, final String child) {

final String val = "";

database.child(parent).addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            val = (String) snapshot.child(child).getValue();
            break;
        }

    }

    @Override
    public void onCancelled(DatabaseError error) {

    }
});


return val;
}

希望这有帮助