从firebase检索数据时遇到一些问题。 我想检索用户名相同的用户的电子邮件到listview。 我想获取所有与我名字相同的用户电子邮件。我不知道如何做,因为我是android新手。
这是我的数据库结构。绿色是uid。
您能告诉我如何轻松地将它们检索到Listview吗?
答案 0 :(得分:0)
为此,您可以将orderByChild()
和equalTo()
一起使用,以将用户名与您想要的用户名进行比较,然后获取其电子邮件。
我的意思在代码中看起来像这样:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("details");
ref.orderByChild("username").equalTo(userNameYouWant).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()){
email.add(ds.child("email").getValue(String.class)); // email here is the ArrayList where you need to add the email
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) { // ToDo: don't ignore this, do something for errors
}
)};
上面的代码将所有用户名与userNameYouWant
进行比较,如果匹配,则将其email
节点中的值添加到email
ArrayList中。