我需要从Firebase
数据库中检索单个数据。我在哪里有一个列表视图包含id列表。每当用户点击listview
我需要显示相应的值字段时。
检查db
的屏幕截图
这是代码。
l1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
r2= FirebaseDatabase.getInstance().getReference().child("type").child("discord").child("ad");
r2.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String name1;
name1=dataSnapshot.getValue().toString();
Toast.makeText(Main2Activity.this, name1, Toast.LENGTH_SHORT).show();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
我需要执行查询
从table_name中选择值,其中id =&#34; 01&#34; ;
答案 0 :(得分:0)
您需要更改以下代码行:
name1=dataSnapshot.getValue().toString();
与
name1=dataSnapshot.child("01").getValue(String.class);
答案 1 :(得分:0)
将addChildEventListener
更改为addValueEventListener
。
例如:
r2.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String name1 = dataSnapshot.child("01").getValue(String.class);
Toast.makeText(Main2Activity.this, name1, Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e(TAG, "onCancelled", databaseError.toException());
}
});