gpt4 book ai didi

java - 我想获得用户的唯一ID。我如何使用 getKey 方法获取它

转载 作者:行者123 更新时间:2023-12-02 11:40:19 25 4
gpt4 key购买 nike

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(), android.R.layout.simple_list_item_1, android.R.id.text1, al);
for(DataSnapshot ds : dataSnapshot.getChildren()) {
name = ds.child("Name").getValue().toString();

// Log.d("TAG", name);
al.add(name);
String list_user_id = getRef(position).getKey();
}
listView.setAdapter(adapter);
}

@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getActivity(),"Please Check Your Internet Connection",Toast.LENGTH_SHORT).show();
}
};
usersRef.addListenerForSingleValueEvent(eventListener);

在字符串 list_user_id = getRef(Position).getKey() 行中:我猜这会返回 null,因为当用户单击 ListView 中的项目时

 usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

UserDetails.chatWith = al.get(position);
Intent intent = new Intent(getActivity(), Chat.class);
intent.putExtra("visit_user_id",list_user_id);
intent.putExtra("user_name",name);
startActivity(intent);
}
});
return rootView;

他将被定向到聊天 Activity ...一旦我打开聊天 Activity ,我就会在这一行收到空指针异常

   MessageRecieverId = getIntent().getExtras().get("visit_user_id").toString();

我哪里出错了?尝试制作一个聊天应用程序,因此需要获取用户的唯一ID...数据库截图http://ibb.co/cwOQtx

再次出现空错误

rootRef.child("Messages").child(MessageSenderId).child(MessageRecieverId)
.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Messages messages = dataSnapshot.getValue(Messages.class);
messagesList.add(messages);
messageAdapter.notifyDataSetChanged();
}

rootref.chil("messages") 行出错......错误-http://ibb.co/h4D2dx

最佳答案

更改代码(在 ValueEventListener 内部):

String list_user_id = getRef(position).getKey();

对此:

String list_user_id = ds.getKey();

for(DataSnapshot ds : dataSnapshot.getChildren()) ds 这里是在直接子级内部进行迭代,这些子级是唯一的 id,然后通过使用上面的内容,您将能够检索唯一的 ID。

另外根据 firebase 文档:

getRef() 不接受任何参数。

更多信息在这里:-

https://firebase.google.com/docs/reference/android/com/google/firebase/database/DataSnapshot.html#getRef()

关于java - 我想获得用户的唯一ID。我如何使用 getKey 方法获取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48624908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com