首页 文章

Firebase获取所需数据

提问于
浏览
0

我想检索所有子节点的电子邮件地址,但是当我执行以下命令时,它只显示最后一个孩子的电子邮件地址 . 以下是Firebase的数据:

data

这是我用来检索数据的代码:

FirebaseDatabase.getInstance().getReference("user")
    .addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            //user userr = snapshot.getValue(user.class);
            //System.out.println(userr.email);
            String c=snapshot.child("email").getValue().toString();
            String longi=snapshot.child("longitude").getValue().toString();
            String latt=snapshot.child("email").getValue().toString();

            Toast.makeText(getApplicationContext(),c+" "+longi+" "+latt,Toast.LENGTH_SHORT).show();
            //  Toast.makeText(getApplicationContext(),"sadjsakdn",Toast.LENGTH_SHORT).show();

            //        User user = snapshot.getValue(User.class);
            //System.out.println(user.email);
        }
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        Toast.makeText(getApplicationContext(),"errorrrr",Toast.LENGTH_SHORT).show();
    }
});

1 回答

  • 0

    请尝试以下方法:

    FirebaseDatabase.getInstance().getReference().child("user").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Iterable<DataSnapshot> children = dataSnapshot.getChildren();
    
                for (DataSnapshot child : children) {
                    User value = child.getValue(User.class);
    
                    if (value != null) {
                        Toast.makeText(MainActivity.this, "List of emails: " + value.getEmail(), Toast.LENGTH_SHORT).show();
                    }
                }
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
    
            }
        });
    

    User类是一个基本的POJO类:

    public class User {
    public String name,email,password,userType;
    public int lattitude,longitude;
    
    public String getEmail() {
        return name;
    }
    
    public void setEmail(String name) {
        this.name = name;
    }
    

相关问题