检索子值 -firebase-
2022-09-03 17:58:03
你从错误的角度来看待这个概念。在使用时,您只是简单地指向数据库中的特定位置,仅此而已。如果要检索该特定位置的数据,请考虑以下两种方法。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) {
}
});
请注意这两种方法之间的区别。第一个仅用于一次检索,第二个用于在值更改时检索数据。
请记住,我发布的代码只是模板,可能需要玩一下。
您只需设置对对象的引用。查看 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) {
}
});