我目前正在为我的Uber风格的应用制作ListView。我已经有了一个节点中存在的密钥/ UID,并且能够在ListView中显示密钥
红色箭头显示相同的UID /键,因此不应显示“随机事物”。 而且我想代替键,而是使“名称”(蓝色箭头/圆圈)显示在ListView上。
https://i.imgur.com/fUQLT8N.png
因此,我不需要显示“ Gx1oJHjQL1OIXQb31zyiydNp3Vt2”,而是显示“ Steven bills”。
实际上,我知道了 https://i.imgur.com/RxRczGa.png
我已经尝试获取ListView来显示包含基于Key的子项值的String。但是我得到的只是一个显示Firebase URL的ListView(由下面的代码引起)
private ListView listView;
private DatabaseReference database, findSeller;
private ArrayList<String> mSellerId = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_freelancer_list);
database = FirebaseDatabase.getInstance().getReference("sellerAvail");
listView = (ListView) findViewById(R.id.newListView);
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mSellerId);
listView.setAdapter(arrayAdapter);
database.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dsp : dataSnapshot.getChildren())
{
String value = null;
value = (String) valueOf(dsp.getKey());
//get the key of the sellerAvail
//Gx1oJHjQL1OIXQb31zyiydNp3Vt2
//how can i search in Seller node?
//DatabaseReference fi = FirebaseDatabase.getInstance().getReference("Users").child("Seller").child(value).child("name");
findSeller = FirebaseDatabase.getInstance().getReference("Users").child("Seller").child(value).child("name");
mSellerId.add(findSeller.toString());
arrayAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
基本上我想做什么:
1.获取“ Seller”和“ sellerAvail”之间相似的密钥
2.获取这些UID的“名称”
3.在ListView上显示它们
您能帮我吗?我已经在任何地方搜索了教程,但找不到。预先谢谢你!