Остановить бесконечную вставку данных в Firebase - PullRequest
1 голос
/ 17 января 2020

Ниже приведен код для вставки данных в мою базу данных Firebase. После выполнения он продолжает вставлять данные. Я пытался остановить его, ограничивая l oop <2, а также пытался с логическим значением mprocess, принимая mprocess=true в начале и после успешной вставки данных mprocess=false, но он продолжает вставлять данные в бесконечном l oop. Как это остановить

 private boolean mprocess=false; 

  try {

        JSONArray arr = new JSONArray(result);
        String[] stocks = new String[arr.length()];

           for(int i=0;i<2;i++) {

            JSONObject obj = arr.getJSONObject(i);

            mDatabase = FirebaseDatabase.getInstance().getReference().child(context.getResources().getText(R.string.bid_request).toString().trim());

            Map<String, Object> userValues = new HashMap<>();

            DatabaseReference newBid = mDatabase.push();

            userValues.put("uid", obj.getString("user_id"));
            userValues.put("uNme", obj.getString("first_name") + " " + obj.getString("last_name"));
            userValues.put("uMoble", obj.getString("user_mobile"));
            userValues.put("uAvtr", obj.getString("src"));
            userValues.put("uRat", obj.getString("user_ratings"));

            userValues.put("pck", obj.getString("pickup_location"));
            userValues.put("drp", obj.getString("drop_location"));

            String data = obj.getString("driver_mobile");
            String[] items = data.split(",");

            for (String item : items) {
                userValues.put(item, "true");
            }


            userValues.put("tdist", obj.getString("tripdistance"));

            DateFormat date = new SimpleDateFormat("yyyy/mm/dd hh:mm:ss aa");
            String dateFormatted = date.format(Calendar.getInstance().getTime());

            userValues.put("p_date", dateFormatted);

            mprocess=true; 

               if(mprocess) {
                newBid.setValue(userValues, new DatabaseReference.CompletionListener() {
                    @Override
                    public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
                        if (databaseError != null) {
                            Toast.makeText(context, "Oops! Connection Problem.Pls try again", Toast.LENGTH_SHORT).show();
                            Intent intent = new Intent(context, PlaceSearchActivity.class);
                            context.startActivity(intent);

                        } else {

                            mprocess=false;

                            ((Activity)context).finish();

                            Toast.makeText(context, "success!", Toast.LENGTH_SHORT).show();

                        }
                    }
                });
            }

        }


      } catch (JSONException e) {
       // Log.e(TAG, "onPostExecute: " + e);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...