使用唯一ID从Firebase检索数据

时间:2019-12-27 12:50:42

标签: java android firebase firebase-realtime-database

实际上,我是使用标记点击监听器从Firebase检索数据的。每个数据都有唯一的ID。 marker for Care medical center in

因此,当我单击护理医疗中心时,它会转到另一个窗口,下面是另一个窗口: Another window for hospital information

但是,当我单击“必须医疗”时,它将转到相同的窗口和相同的数据。

实际上主要是相同的数据。 我如何检索另一个标记的不同数据。

野兔是我的基地:enter image description here

这是我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_h_info);

        hosp_name=(TextView) findViewById(R.id.hosp_name);
        hosp_email=(TextView) findViewById(R.id.hosp_email);
        hosp_num=(TextView) findViewById(R.id.hosp_number);

        FirebaseDatabase firebaseDatabase=FirebaseDatabase.getInstance();
        DatabaseReference databaseReference1=firebaseDatabase.getReference("H_Information");

        databaseReference1.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
                {

                    hosp_name.setText(dataSnapshot1.child("hname").getValue().toString());
                    hosp_email.setText(dataSnapshot1.child("hemail").getValue().toString());
                    hosp_num.setText(dataSnapshot1.child("hmobile").getValue().toString());


                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

    }
}

1 个答案:

答案 0 :(得分:0)

您需要添加查询以检索正确的数据,例如,您可以使用equalTo()

        databaseReference1.orderByChild("hname").equalTo("sust medical").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
                {

                    hosp_name.setText(dataSnapshot1.child("hname").getValue().toString());
                    hosp_email.setText(dataSnapshot1.child("hemail").getValue().toString());
                    hosp_num.setText(dataSnapshot1.child("hmobile").getValue().toString());


                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

当您单击“ sust medical”时,请使用名称并将其作为参数传递给equalTo()