Android Firebase实时数据库混淆
我正试图用firebase创建一个实时数据库,但我的信息并没有按应有的方式存储。JSON数据的格式如下所示: 如何摆脱djProfile的多个实例?在这个层次结构树中,随机的字母和数字串意味着什么 以下是我的android类,我使用这些类尝试检索这些信息并将其存储在我的firebase recyclerview中: DjProfile类别:Android Firebase实时数据库混淆,android,json,firebase,firebase-realtime-database,Android,Json,Firebase,Firebase Realtime Database,我正试图用firebase创建一个实时数据库,但我的信息并没有按应有的方式存储。JSON数据的格式如下所示: 如何摆脱djProfile的多个实例?在这个层次结构树中,随机的字母和数字串意味着什么 以下是我的android类,我使用这些类尝试检索这些信息并将其存储在我的firebase recyclerview中: DjProfile类别: public class DjProfile { String djName, uniqueID; public DjProfile(
public class DjProfile
{
String djName, uniqueID;
public DjProfile(){}
public DjProfile(String djName, String uniqueID)
{
this.djName = djName;
this.uniqueID = uniqueID;
}
public String getDjName() { return djName; }
public String getUniqueID() {return uniqueID; }
}
RecyclerView信息:
RecyclerView RecyclerView=findViewById(R.id.dj\u结果\u回收器);
recyclerView.setLayoutManager(新的LinearLayoutManager(本))
DatabaseReference rootRef=FirebaseDatabase.getInstance().getReference();
Query=rootRef.child(“djProfile”);
FirebaseRecyclerOptions FirebaseRecyclerOptions=新建FirebaseRecyclerOptions.Builder()
.setQuery(查询,DjProfile.class)
.build();
firebaseRecyclerAdapter=新的firebaseRecyclerAdapter(firebaseRecyclerOptions)
{
@非空
@凌驾
public ResultsViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
View View=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.searchitem_列表,viewGroup,false);
返回新结果ViewHolder(视图);
}
@凌驾
受保护的无效onBindViewHolder(@NonNull ResultsViewHolder,int位置,@NonNull DjProfile模型){
保持架。设置djprofile(模型);
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
}
@凌驾
受保护的void onStart()
{
super.onStart();
firebaseRecyclerAdapter.startListening();
}
@凌驾
受保护的void onStop()
{
super.onStop();
如果(firebaseRecyclerAdapter!=null)
{
firebaseRecyclerAdapter.stopListening();
}
}
公共静态类ResultsViewHolder扩展了RecyclerView.ViewHolder
{
私有文本视图;
public ResultsViewHolder(查看项目视图)
{
超级(项目视图);
djNameView=itemView.findviewbyd(R.id.result\u dj);
}
void setDjProfile(DjProfile配置文件)
{
字符串djName=profile.getDjName();
djNameView.setText(djName);
}
}
我怎样才能检索到djProfile中的名称?我错过了什么
非常感谢您的反馈
在层次结构树中,随机的字母和数字串意味着什么
每次对引用调用
push()
时,都会创建以-Lar
开头的键。它相当于一个数组索引。要了解更多关于它们的信息,请参见和。哦,我明白了,那么我如何从“数组索引”中获取信息并获取要显示在recyclerview中的djname?
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("djProfile");
FirebaseRecyclerOptions<DjProfile> firebaseRecyclerOptions = new FirebaseRecyclerOptions.Builder<DjProfile>()
.setQuery(query, DjProfile.class)
.build();
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<DjProfile, ResultsViewHolder>(firebaseRecyclerOptions)
{
@NonNull
@Override
public ResultsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.searchitem_list, viewGroup, false);
return new ResultsViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull ResultsViewHolder holder, int position, @NonNull DjProfile model) {
holder.setDjProfile(model);
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
}
@Override
protected void onStart()
{
super.onStart();
firebaseRecyclerAdapter.startListening();
}
@Override
protected void onStop()
{
super.onStop();
if(firebaseRecyclerAdapter != null)
{
firebaseRecyclerAdapter.stopListening();
}
}
public static class ResultsViewHolder extends RecyclerView.ViewHolder
{
private TextView djNameView;
public ResultsViewHolder(View itemView)
{
super(itemView);
djNameView = itemView.findViewById(R.id.result_dj);
}
void setDjProfile(DjProfile profile)
{
String djName = profile.getDjName();
djNameView.setText(djName);
}
}