Android-Firebase Ui从其他表获取数据? [英] Android - Firebase Ui get data from other table?
本文介绍了Android-Firebase Ui从其他表获取数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好,我需要从其他使用uid的表引用中获取user_fname
Hello everyone I need to get user_fname from other table reference with uid
在我的代码下面 我使用的是IndexedQuery,但无法从教程和示例代码中清除 Firebase Ui
Below this my code I'm use IndexedQuery and not clear from tutorial and sample code Firebase Ui
mRef = FirebaseDatabase.getInstance().getReference().child("mainboard");
mReference = FirebaseDatabase.getInstance().getReference().child("user");
mRecyclerView = view.findViewById(R.id.mainboard_alllist);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
mLayoutManager = new LinearLayoutManager(getContext());
mOption = new FirebaseRecyclerOptions.Builder<Mainboard>().
setIndexedQuery(mRef , mReference ,Mainboard.class)
.setLifecycleOwner(this)
.build();
mAdapter = new FirebaseRecyclerAdapter<Mainboard, MainboardViewHolder>(mOption) {
@Override
public MainboardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.mainboard_list , parent , false);
return new MainboardViewHolder(view);
}
@Override
protected void onBindViewHolder(MainboardViewHolder holder, int postion, Mainboard mainboard) {
String mb_id = mainboard.mb_id;
mRef.child( mb_id + "/mb_auther").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String mb_author = dataSnapshot.getValue().toString();
mReference.child(mb_author + "/user_fname").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String user_fname = dataSnapshot.getValue().toString();
Log.e("user_fname" , dataSnapshot.getValue().toString());
holder.setAuthor(user_fname);
}
}
}
};
}
}
推荐答案
直接方法
1.首先使用addListenerForSingleValueEvent
侦听器
2.然后使用该mb_auther
值获得user_fname
2.Then using that mb_auther
value get the user_fname
mRef.child("id/mb_auther").addListenerForSingleValueEvent(new ValueEventListener() { //Your case id is -KrHOUwrsBbXHvUaOTIu
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String mb_auther = dataSnapshot.getValue().toString();
mReference.child(mb_auther + "/user_fname").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String user_fname = dataSnapshot.getValue().toString()
Log.e("user_fname", user_fname);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
这篇关于Android-Firebase Ui从其他表获取数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文