Подсчет из базы данных - PullRequest
       2

Подсчет из базы данных

0 голосов
/ 26 сентября 2018

У меня проблема, когда я пытаюсь подсчитать данные в базе данных Firebase.Я пытаюсь изменить это много раз, но я все еще не могу найти, как решить это.

this is my database

private  void setupBadge() {

    String key = request.getKey();


    if (key != null) {
        request.child(key).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                if (dataSnapshot.exists()) {

                    mCartItemCount = (int) dataSnapshot.getChildrenCount();


                    if (textCartItemCount != null) {
                        if (mCartItemCount == 0) {
                            if (textCartItemCount.getVisibility() != View.GONE) {
                                textCartItemCount.setVisibility(View.GONE);
                            }
                        } else {
                            textCartItemCount.setText(Integer.toString(mCartItemCount) + "");
                            if (textCartItemCount.getVisibility() != View.VISIBLE) {
                                textCartItemCount.setVisibility(View.VISIBLE);
                            }
                        }
                    }

                }

            }

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

            }
        });
    }


}

Я думаю, возможно, проблема вмоя база данных, потому что я пытаюсь получить ключ.Но, скажите мне, если это что-то не так с моим кодом, потому что он все время показывает «0».

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Извините, я понимаю, что вы хотите подсчитать количество детей в вашем узле «История».Затем вы можете сделать запрос как orderbyChild и передать «History» в качестве дочернего ключа.

ValueEventListener listener = new ValueEventListener ......

Затем выполните Query:

DatabaseReferencedbReference = ....

Query query = dbReference.orderbyChild ("History");

query.addsingleEventListener (listener);

Надеюсь, это поможет :) Happy Coding: -)

0 голосов
/ 26 сентября 2018

Вы можете попробовать, например:

 request.child(key).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if (dataSnapshot.exists()) {

            for ( DataSnapshot mdataSnapshot  : dataSnapshot)
                 {

                  int count = mdataSnapshot.getChildrenCount();

                  **// Here count for number for list of items**
                 }

            }

        }

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

        }
    });

Вы можете перейти к файлу базы данных базы данных реального времени firebase, чтобы узнать больше об этом или увидеть datasnapshot в ответ на отладку и решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...