Не получить значение или ноль при первом запуске приложения из определенного поля базы данных Firebase.Помоги мне, предложив, где я иду не так? - PullRequest
1 голос
/ 19 июня 2019

Я написал код, чтобы получить сохраненное значение из базы данных 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();

                        }
                    }
                }
            }



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