Android Firebase实时数据库混淆

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(

我正试图用firebase创建一个实时数据库,但我的信息并没有按应有的方式存储。JSON数据的格式如下所示:

如何摆脱djProfile的多个实例?在这个层次结构树中,随机的字母和数字串意味着什么

以下是我的android类,我使用这些类尝试检索这些信息并将其存储在我的firebase recyclerview中:

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);
    }
}