System.out.println(ref.child("mostafa_farahat22@yahoo.com").child("_email"));
*我试图得到一个孩子的值,但我一直得到值的URL 如何通过此代码尝试获取此URL的值,但它让我想要获取_email值的URLi。
答案 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) {
}
});