java如何获取在listview上单击的项目的用户唯一id
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("Users");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ListView listView = (ListView) rootView.findViewById(R.id.usersList);
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(getActivity(), 安卓.R.layout.simple_list_item_1, 安卓.R.id.text1, al);
for(DataSnapshot ds : dataSnapshot.getChildren()) {
name = ds.child("Name").getValue().toString();
phonenumber=ds.getKey();
list_user_id = getRef(position).getKey;
// Log.d("TAG", name);
al.add(name);
}
listView.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getActivity(),"Please Check Your Internet Connection",Toast.LENGTH_SHORT).show();
}
};
usersRef.addListenerForSingleValueEvent(eventListener);
我有一个所有用户的活动。。。如果我点击一个用户,我想获取他们的唯一id,但我无法做到这一点。。。行-list\u user\u id=getRef(位置)中出错。getKey;我获取id的方法是错误的还是过时的
# 1 楼答案
您可以使用onDataChange中的Map方法从Firebase DB中获取所有键值,如下所示:
# 2 楼答案
由于您有一个listview,因此可以执行以下操作:
假设您有一个包含用户名的listview,并且假设您的数据库中有此用户名:
使用这个
final String selectedFromList = (String)lists.getItemAtPosition(i);
您可以获得本例中的项目username
。然后使用查询equalTo()
,它将检查数据库并使用getKey()
将该用户的id返回给您