检索儿童价值 - 火灾 -

时间:2016-06-24 16:11:33

标签: java android firebase firebase-realtime-database

System.out.println(ref.child("mostafa_farahat22@yahoo.com").child("_email"));

*我试图得到一个孩子的值,但我一直得到值的URL 如何通过此代码尝试获取此URL的值,但它让我想要获取_email值的URLi。

2 个答案:

答案 0 :(得分:26)

你正在从错误的角度看待这个概念。 在使用ref.child("mostafa_farahat22@yahoo.com").child("_email")时,您只需指向数据库中的特定位置即可。 如果要检索特定位置的数据,请考虑以下两种方式。

首先,如果您只想检索一次数据,可以执行以下操作:

 DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
 DatabaseReference mostafa = ref.child("Users").child("mostafa_farahat22@yahoo.com").child("_email");

 mostafa.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {
    String email = dataSnapshot.getValue(String.class);
    //do what you want with the email 
 }

 @Override
 public void onCancelled(DatabaseError databaseError) {

 }
 });

或者您可能希望实时检索该值并在数据库值更改的同一时间使用它,所有这些都在同一时间,每当更改值时,您使用此:

mostafa.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    String email = dataSnapshot.getValue(String.class);

    display.setText(email);
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

注意两种方法的区别。首先是一次检索,第二次是在值改变时检索数据。

请记住,我发布的代码只是模板,可能需​​要稍微玩一下。

答案 1 :(得分:2)

使用ref.child("mostafa_farahat22@yahoo.com").child("_email"),您只需设置对象的引用。看看java firebase documentation to retrieve data

要获取数据,您需要为参考设置一个监听器

ref.child("mostafa_farahat22@yahoo.com").child("_email").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        // data available in snapshot.value()
    }
    @Override
    public void onCancelled(FirebaseError firebaseError) {
    }
});