Я пытаюсь создать приложение для симулятора торгового автомата и сохраняю значение в Firebase.
Это мои данные Firebase для номинала монет и количества выпивки:

Это мое первое занятие: 
Этомое второе занятие 
Я хочу хранить монеты, введенные клиентом в каждом номинале (например: если клиент введет 20 центов, то количество для 20 центов будет добавлено к 1 в Firebase и т. д.), ноЯ не знаю, как это сделать.Та же проблема возникает для количества напитка (например, если количество = цена или количество> цена, система должна распределить напиток и вычесть количество напитка на 1 в базе данных Firebase).
Я понимаю логику, но яЯ не знаю, как реализовать это в разработке Android, так как я все еще учусь и новичок в этом.
Любая помощь будет принята с благодарностью.Заранее спасибо.
Это мой DrinkActivity.java
public class DrinkActivity extends AppCompatActivity {
Button terminateBtn;
ImageButton tenCent, twentyCent, fiftyCent, oneRinggit, slugCoin1, slugCoin2;
TextView amount;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drink);
// Receive data
String name = getIntent().getExtras().getString("name");
String price = getIntent().getExtras().getString("price");
String image_url = getIntent().getExtras().getString("img");
// init view
TextView tv_name = findViewById(R.id.aa_name);
TextView tv_price = findViewById(R.id.aa_price);
ImageView img = findViewById(R.id.aa_thumbnail);
// setting values to each view
tv_name.setText(name);
tv_price.setText(String.valueOf(price));
RequestOptions requestOptions = new RequestOptions().centerCrop().placeholder(R.drawable.loading_shape).error(R.drawable.loading_shape);
// set image using Glide
Glide.with(this).load(image_url).apply(requestOptions).into(img);
//Amount
amount = (TextView) findViewById(R.id.amountView);
//Coin Button
tenCent = (ImageButton) findViewById(R.id.cent10);
twentyCent = (ImageButton) findViewById(R.id.cent20);
fiftyCent = (ImageButton) findViewById(R.id.cent50);
oneRinggit = (ImageButton) findViewById(R.id.rm1);
slugCoin1 = (ImageButton) findViewById(R.id.unknown1);
slugCoin2 = (ImageButton) findViewById(R.id.unknown2);
terminateBtn = (Button) findViewById(R.id.terminateBtn);
//Terminate button
terminateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//When terminate the transaction, it should return the amount that already has
//been inserted by the customer.
Intent i = new Intent(DrinkActivity.this,Home.class);
startActivity(i);
}
});
//10 cent button
tenCent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
amount.setText("RM 0.10");
playSound();
}
}, 1000);
amount.setText("Checking...");
}
});
//20 cent button
twentyCent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
amount.setText("RM 0.20");
playSound();
}
}, 1000);
amount.setText("Checking...");
}
});
//50 cent button
fiftyCent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
amount.setText("RM 0.50");
playSound();
}
}, 1000);
amount.setText("Checking...");
}
});
//RM 1 button
oneRinggit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
amount.setText("RM 1.00");
playSound();
}
}, 1000);
amount.setText("Checking...");
}
});
//Slug coin 1 button
slugCoin1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(DrinkActivity.this, "Invalid Coin!" , Toast.LENGTH_SHORT).show();
amount.setText("RM 0.00");
slugCoinSound();
}
}, 1000);
amount.setText("Checking...");
}
});
//Slug coin 2 button
slugCoin2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(DrinkActivity.this, "Invalid Coin!" , Toast.LENGTH_SHORT).show();
amount.setText("RM 0.00");
slugCoinSound();
}
}, 1000);
amount.setText("Checking...");
}
});
}
public void playSound() {
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.insert_coins);
mediaPlayer.start();
}
public void slugCoinSound() {
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.change);
mediaPlayer.start();
}
}