Nikop
@Nikop

Как суммировать данные Firebase в Android?

Добрый день! Суть вопроса.

У меня есть поле в Firebase, - balance.

Что мне нужно - после того, как человек вводит сумму - 100, поле меняет значение на 100, далее человек вводит сумму 50, значение поля становиться 150.

Как мне написать логику обработки на клиенте? Суммирование данных.

Думаю, что это оверпросто, но нужна ваша помощь!

mDatabaseUsers.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {



                String user_id = mAuth.getCurrentUser().getUid();
                
                String balance = dataSnapshot.child(user_id).child("Balance").getValue(String.class);

                mCountPayment.setText(balance + " ₽");

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

        mPaymentButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                paymentIntent();



            }
        });
    }

    private void paymentIntent() {


        final String user_id = mAuth.getCurrentUser().getUid();

        final String count = mPaymentList.getText().toString().trim();

        if (!TextUtils.isEmpty(count)) {


            mDatabaseUsers.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {


                    mDatabaseUsers.child(user_id).child("Balance").setValue(count);


                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });


        }


    }
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
@orbit070
Два способа:
1. Считываете заранее предыдущее значение из firebase, складываете числа на клиенте, и перезаписывается уже результат суммы.
2. Посмотрите в сторону транзакций
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы