我需要来自firebase的特定数据

时间:2018-04-19 18:09:31

标签: firebase firebase-realtime-database

我的数据库中有8500个用户在firebase中。 我试图收到所有用户的电子邮件 但我得到了所有的数据,这需要太多时间 有没有办法只获得这些数据? 我的模特是

   {
    users:{
        userId:{
            name: true,
            adress:{
                street: someStreet,
                city: someCity
            },
            email:someEmail
        }
    }
}

1 个答案:

答案 0 :(得分:2)

要收到电子邮件,请尝试以下操作:

# Declare as readonly
readonly variable="somevalue"

由于您需要所有用户的电子邮件,因此您需要在DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users"); ref.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot datas: dataSnapshot.getChildren()){ String email=datas.child("email").getValue().toString(); } } @Override public void onCancelled(DatabaseError error) { } }); 内循环以获取这些电子邮件。

通常用户节点是这样的:

userId

因此,要获取所有用户的电子邮件,您可以在用户ID中循环以获取它们。如果您没有使用Users userid email: emailhere name: namehere key: value 并使用userid生成的随机ID,则您还必须循环以获取所有电子邮件。

另一种方法是创建一个仅包含用户电子邮件的push()节点:

email