簡體   English   中英

如何在實時數據庫 firebase 中獲取第一個子節點

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

我的數據庫實時數據庫

我試圖只獲取這個孩子的數據,並通過使用addValueEventListener從起始詞到 [to] 詞的子字符串在列表視圖中顯示它,但無論如何他在onDataChange方法中得到一個錯誤......

我試圖通過此代碼獲取此數據

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) {

                }
            });

要將第一個孩子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) {

            }
        });

首先在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