如何从Firebase检索相同的数据?

时间:2018-11-11 14:56:10

标签: java android firebase firebase-realtime-database

从firebase检索数据时遇到一些问题。 我想检索用户名相同的用户的电子邮件到listview。 我想获取所有与我名字相同的用户电子邮件。我不知道如何做,因为我是android新手。

这是我的数据库结构。绿色是uid。

enter image description here

您能告诉我如何轻松地将它们检索到Listview吗?

1 个答案:

答案 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中。