有没有一种方法可以不在当前用户单击的getKey()的列表视图位置使用getRef()?

时间:2018-08-30 14:47:22

标签: java firebase firebase-realtime-database

我正在工作失败 Firebase-UI或FirebaseListAdapter。

我已经制作了自己的自定义适配器,现在问题出在我需要获取所单击位置的getKey()以获取用户uid时。

我已经尝试过了,但是没有成功

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            Toast.makeText(mContext, "Clicked: " + getmList().get(position), Toast.LENGTH_SHORT).show();
             //Error comes here that says cannot apply UserPojo to DatabaseReference 
             mRootReference = getAdapter(mContext).getItem(position);

其中

mRootReference = FirbaseDatabase.getInstance().getReference();

getAdapter(Context);是我的自定义适配器

 public DataAdapter getAdapter(Context adapterContext) {
        return new DataAdapter(adapterContext,getmList());
    }

现在,我需要在mRootReference = getAdapter(mContext).getItem(position)处获取用户的位置,以便在我拥有的其他功能中传递用户的uid

intent.putExtra("uid", mRootReference.getKey());

是否有任何想法没有 getRef()?

1 个答案:

答案 0 :(得分:1)

mRootReference = FirbaseDatabase.getInstance().getReference();

我很担心下面的代码。

错误

mRootReference = getAdapter(mContext).getItem(position)

int mPositon = adapter.getRef(position);

然后引用您的数据库节点。

StringKey = mRootReference.child(...).child(mPositon).getKey();

您的意图额外

intent.putExtra("uid", StringKey);