Я написал код, чтобы получить сохраненное значение из базы данных Firebase.Но когда я запускаю приложение в первый раз (это также происходит, когда я закрываю приложение, очищаю приложение от телефонного процесса и снова запускаю приложение), значения могут быть равны нулю / или могут не получать вместо ранее сохраненного значения в этом поле.На самом деле, когда я добавляю акцию после первого запуска, и если я снова добавляю акцию, она работает нормально (означает oldstock + newstock), но при первом запуске приложения оно не получает старого значения вместо того, чтобы получать значение, когда я добавляю акцию в первый раз, когда она заменяетэто значение со старым, и тогда все работает нормально, как получить старое и добавить новое к старому и srtored. Также нет ошибок или предупреждений.Ребята, я хочу решить эту проблему.Еще раз спасибо за вашу помощь.
Вот моя структура БД. введите описание изображения здесь
и вот мой код: -
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stockaddpage);
btnsbmt =(Button)findViewById(R.id.button);
btnupdt =(Button)findViewById(R.id.updt_btn);
stock_rev = FirebaseDatabase.getInstance().getReference().child("STOCK").child("FLOWERS").child("ROSE").child("instock");
stock_rev.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
finstockval2=dataSnapshot.getValue(long.class);
Toast.makeText(stockaddpageActivity.this, ""+finstockval2, Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
btnsbmt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Toast.makeText(MainActivity.this, "entered.....", Toast.LENGTH_SHORT).show();
spnitm = (Spinner) findViewById(R.id.typspn);
spnname = (Spinner) findViewById(R.id.nmspn);
qtyvalues = (EditText) findViewById(R.id.qtyinpt);
msrspn = (Spinner) findViewById(R.id.measurespn);
itmtype = spnitm.getSelectedItem().toString();
itmname = spnname.getSelectedItem().toString();
stckinpval = qtyvalues.getText().toString();
convrtdval = Long.parseLong(stckinpval);
msrval = msrspn.getSelectedItem().toString();
Log.d("first","in click");
if (itmtype.equals("Flowers")) {
Toast.makeText(stockaddpageActivity.this, "entered.....flowers", Toast.LENGTH_SHORT).show();
if (itmname.equals("Rose")) {
Toast.makeText(stockaddpageActivity.this, "entered.....rose", Toast.LENGTH_SHORT).show();
datareff1 = FirebaseDatabase.getInstance().getReference().child("STOCK").child("FLOWERS").child("ROSE").child("instock");
datareff2 = FirebaseDatabase.getInstance().getReference().child("STOCK").child("FLOWERS").child("ROSE").child("History");
if (convrtdval != null) {
if (msrval.equals("Grams")) {
calculatedvalue = convrtdval;
fintype = "Flowers";
finname = "Rose";
finstockval = finstockval2+calculatedvalue;
finstockval2=0;
finmeasure = "Grams";
datareff1.setValue(finstockval);
Log.d("in gram","in gram");
currentDate =Calendar.getInstance().getTime();
tim = currentDate.toString();
Toast.makeText(stockaddpageActivity.this, "Grams : Added", Toast.LENGTH_SHORT).show();
//Toast.makeText(MainActivity.this, dt, Toast.LENGTH_SHORT).show();
Toast.makeText(stockaddpageActivity.this, tim, Toast.LENGTH_SHORT).show();
} else {
calculatedvalue = (convrtdval) * 1000;
fintype = "Flowers";
finname = "Rose";
finstockval = finstockval2+calculatedvalue;
finstockval=0;
finmeasure = "Kilograms";
datareff1.setValue(calculatedvalue);
Toast.makeText(stockaddpageActivity.this, "KG : Added", Toast.LENGTH_SHORT).show();
}
}
}
if (itmname.equals("Lily")) {
Toast.makeText(stockaddpageActivity.this, "entered.....lilly", Toast.LENGTH_SHORT).show();
datareff1 = FirebaseDatabase.getInstance().getReference().child("STOCK").child("FLOWERS").child("LILLY").child("instock");
datareff2 = FirebaseDatabase.getInstance().getReference().child("STOCK").child("FLOWERS").child("LILLY").child("History");
stock_rev = FirebaseDatabase.getInstance().getReference().child("STOCK").child("FLOWERS").child("LILLY").child("instock");
stock_rev.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
finstockval3 = dataSnapshot.getValue(Long.class);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
if (convrtdval != null) {
if (msrval.equals("Grams")) {
calculatedvalue = convrtdval;
fintype = "Flowers";
finname = "Lilly";
finstockval = finstockval3+calculatedvalue;
finmeasure = "Grams";
datareff1.setValue(finstockval);
Log.d("in gram","in gram");
currentDate =Calendar.getInstance().getTime();
tim = currentDate.toString();
Toast.makeText(stockaddpageActivity.this, "Grams : Added", Toast.LENGTH_SHORT).show();
//Toast.makeText(MainActivity.this, dt, Toast.LENGTH_SHORT).show();
Toast.makeText(stockaddpageActivity.this, tim, Toast.LENGTH_SHORT).show();
} else {
calculatedvalue = (convrtdval) * 1000;
fintype = "Flowers";
finname = "Lilly";
finstockval = finstockval3+calculatedvalue;
finmeasure = "Kilograms";
datareff1.setValue(calculatedvalue);
Toast.makeText(stockaddpageActivity.this, "KG : Added", Toast.LENGTH_SHORT).show();
}
}
}
}
}
});
}
}