【问题标题】:How to retrieve the list of data under 1 child in Firebase Database in Android Studio如何在 Android Studio 的 Firebase 数据库中检索 1 个子项下的数据列表
【发布时间】:2018-06-29 22:50:31
【问题描述】:

存储在 firebase 中的数据:

 29-06-2018(date)

     -AAAA
           -25142(jobno)
           -Park station(address)
           -BMW(model)

     -BBBB 
           -85142(jobno)
           -Base station(address)
           -Ford(model)

在这里,我想要 -BBBB 下的所有孩子。不想循环通过 AAAA。如何直接得到BBBB的孩子。我有数据(日期,BBBB)。只想获取BBBB的jobno,地址,型号。请给我一个解决方案。

我的代码在这里

DatabaseReference database = FirebaseDatabase.getInstance().getReference();
        DatabaseReference pwd = database.child("29-06-2018").child("BBBB");

        pwd.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot ds : dataSnapshot.getChildren()) {    
                        String a = ds.child("jobno").getValue(String.class);
                        String b = ds.child("address").getValue(String.class);
                        String c = ds.child("model").getValue(String.class);

                }
            }

            @Override
            public void onCancelled(DatabaseError error) {

            }

        });

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    您正在听一个孩子/29-06-2018/BBBB。通过循环dataSnapshot.getChildren(),您将循环遍历每个属性,然后尝试为每个属性访问一个子属性。那是行不通的,所以你应该摆脱onDataChange中的循环:

    pwd.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot ds) {
            String a = ds.child("jobno").getValue(String.class);
            String b = ds.child("address").getValue(String.class);
            String c = ds.child("model").getValue(String.class);
        }
    

    【讨论】:

    • 感谢您的解决方案和快速响应。只是代码中的一个小改动,而不是“ds”它的“dataSnapshot”。
    【解决方案2】:
    DatabaseReference database = FirebaseDatabase.getInstance().getReference();
            DatabaseReference pwd = database.child("29-06-2018").child("BBBB");
    
            pwd.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
    
                            String a = dataSnapshot.child("jobno").getValue(String.class);
                            String b = dataSnapshot.child("address").getValue(String.class);
                            String c = dataSnapshot.child("model").getValue(String.class);
    
    
                }
    
                @Override
                public void onCancelled(DatabaseError error) {
    
                }
    
            });
    

    【讨论】:

      猜你喜欢
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2017-08-25
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 2018-01-06
      相关资源
      最近更新 更多