简体   繁体   English

如何在实时数据库 firebase 中获取第一个子节点

[英]how to get first child node in realtimedatabase firebase

我的数据库实时数据库

i have tried to get this child's data only and show it in listview by substring from start word to [to] word by using addValueEventListener but in all way's he get an error in onDataChange method ...我试图只获取这个孩子的数据,并通过使用addValueEventListener从起始词到 [to] 词的子字符串在列表视图中显示它,但无论如何他在onDataChange方法中得到一个错误......

i tried to get this data by this code我试图通过此代码获取此数据

FirebaseDatabase.getInstance().getReference().child("chats").addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    for(DataSnapshot ds : dataSnapshot.getChildren()) {
                        if (ds.getValue().toString().contains(getIntent().getStringExtra("displayName"))) {
                            chat_childs += ds.getValue().toString() + "\n";
                            String doctorName = chat_childs.substring(0, chat_childs.lastIndexOf("to"));
                            allDoctorsModels.add(new AllDoctorsModel(doctorName, "", ""));
                        }
                    }
                    allDoctorsAdapter = new AllDoctorsAdapter(patient_message.this,allDoctorsModels,getIntent().getStringExtra("displayName"));
                    recyclerView.setAdapter(allDoctorsAdapter);
                    progressDialog.dismiss();
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

To get the first child Doc Ahmed Rafaat to Pat Ahmed El-Nakib , do the following:要将第一个孩子Doc Ahmed Rafaat to Pat Ahmed El-Nakib ,请执行以下操作:

FirebaseDatabase.getInstance().getReference().child("chats").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for(DataSnapshot ds : dataSnapshot.getChildren()) {
                  String key = ds.getKey();
                  if(key.contains("Doc Ahmed Rafaat to Pat Ahmed El-Nakib")
                   {
                      String doctorName = key.subString(4,16);
                      allDoctorsModels.add(new AllDoctorsModel(doctorName, "", ""));
                   }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

First loop inside of the direct children of chats , then retrieve all the keys and check if the key contains Doc Ahmed Rafaat to Pat Ahmed El-Nakib then using subString on the variable key you can retrieve the name Ahmed Rafaat .首先在chats的直接子级内部循环,然后检索所有键并检查键是否包含Doc Ahmed Rafaat to Pat Ahmed El-Nakib然后在变量key上使用subString您可以检索名称Ahmed Rafaat

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM