Как успешно рассчитать значение от ребенка в базе данных Firebase - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь вычислить сумму стоимости всех детей в базе данных с именем «Цена»

ниже мой код

@Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        mtotal = (TextView) findViewById(R.id.textre);
        mda = FirebaseDatabase.getInstance().getReference().child("Cart");
        mda.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                int sum = 0;
                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    Map<String, Object> map = (Map<String, Object>) ds.getValue();
                    Object price = map.get("Price");
                    int pvalue = Integer.parseInt(String.valueOf(price));
                    sum += pvalue;
                    if (sum<100){
                        Toast.makeText(getApplicationContext(),"greare",Toast.LENGTH_SHORT).show();
                    }else {
                        Toast.makeText(getApplicationContext(),"sorry",Toast.LENGTH_SHORT).show();
                    }

                }


            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Log.d(TAG, databaseError.getMessage());

            }
        });

, как показано в моем коде, если значение, полученное из узлов цены, меньше 100, то должно появиться всплывающее сообщение со словом «успех». Вместо этого приложение рушится без сообщения

это изображение моей базы данных Firebase, показывающее значения "Price", которые я хочу получить

enter image description here

1 Ответ

1 голос
/ 04 июля 2019

Попробуйте сделать это, я думаю, что вы не понимаете цену правильно

mda.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            int sum = 0;
            for (DataSnapshot ds : dataSnapshot.getChildren()) {
                int pvalue = ds.child("Price").getValue(Integer.class);
                sum += pvalue;
                if (sum<100){
                    Toast.makeText(getApplicationContext(),"greare",Toast.LENGTH_SHORT).show();
                }else {
                    Toast.makeText(getApplicationContext(),"sorry",Toast.LENGTH_SHORT).show();
                }

            }


        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.d(TAG, databaseError.getMessage());

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