检索子值 -firebase-

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

*我试图得到一个子值,但一直以来我得到值的URL如何获取这个URL的值,因为我尝试通过这个代码,但它得到我的URLi想要得到_email值。


答案 1

你从错误的角度来看待这个概念。在使用时,您只是简单地指向数据库中的特定位置,仅此而已。如果要检索该特定位置的数据,请考虑以下两种方法。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) {

}
});

请注意这两种方法之间的区别。第一个仅用于一次检索,第二个用于在值更改时检索数据。

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


答案 2

您只需设置对对象的引用。查看 java firebase 文档以检索数据ref.child("mostafa_farahat22@yahoo.com").child("_email")

要获取数据,您需要设置一个侦听器以供参考

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) {
    }
});

推荐