Ссылка на базу данных не была распознана

спросил: 26 ноября 2017 в 05:14 в: android

У меня есть цикл for, который создает места. Я пытаюсь проверить, было ли место уже зарегистрировано (забронировано) в нашей базе данных, поэтому, когда я инициирую место, я хочу попасть в свою базу данных и проверить, есть ли оно уже там, поэтому я вставил метод с именем look внутри этих двух для циклы, как это

for (i = 0; i < maxRow; i++) {
        for (j = 0; j < maxColumn; j++) {
            final SeatMo seat = new SeatMo();
            seat.row = i;
            seat.column = j;
            seat.status = 1;
            look(seat,i,j)
            seatTable[i][j] = seat;
        }
    }

Метод выглядит там, где ссылка, когда я сохранил место в базе данных, я назвал ребенка по определенному месту, которое было выбрано, например, col: 2 строка: 3, вот метод look

  private void look(final SeatMo seat, final int a, final int b) {
    databaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.hasChild("col:" + i + " row:" + j)) {
                seat.status = 0;
            } else {
                    seat.status = 1;
            }
        }        @Override
        public void onCancelled(DatabaseError databaseError) {}
      });
    }

Я хочу, чтобы он проверял каждое место во время инициализации места, но по какой-то причине, которая, я надеюсь, вы может найти в коде о том, что при вызове метода look ссылка пропускается (полностью databaseRef). У меня вопрос: что может быть причиной пропуска ссылки и как я могу убедиться, что она не пропускается?

DatabaseRef объявлен в методе Oncreate, это поле

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_seats);    if(getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }    currUser = FirebaseAuth.getInstance().getCurrentUser();
    Intent callingIntent = getIntent();
    maxC = Integer.valueOf(callingIntent.getStringExtra("col"));
    maxR = Integer.valueOf(callingIntent.getStringExtra("row"));
    decks = Integer.valueOf(callingIntent.getStringExtra("deck"));
    fare = Double.valueOf(callingIntent.getStringExtra("fare"));
    driver = callingIntent.getStringExtra("id");
    destination = callingIntent.getStringExtra("dest");    databaseRef = FirebaseDatabase.getInstance().getReference("coach-drivers" + "/" + driver + "/" + "clients" );    initSeatTable(maxC,maxR);
    selectedSeats = new ArrayList<>();
    mMovieSeatView1= (MovieSeatView) findViewById(R.id.seat_view_one);
    deck = (Spinner) findViewById(R.id.top_bottom);
    mMovieSeatView1.setSeatTable(seatTable);
    mMovieSeatView1.setPresenter(this);  }

Ссылка имеет правильный маршрут

Попытка изменить маршрут на ссылку так:

   databaseRef = FirebaseDatabase.getInstance().getReference().child("coach-drivers").child(driver).child("clients");

до сих пор не получается к методам onDataChange () и onCancel

Это структура Json моей базы данных.

  {
"coach-drivers": {
    "iiiiiiiiiiiiiii": {
        "clients": {
            "col:3 row:2": "one",
            "col:3 row:1:"one",
             "col:1 row:3" : "one"
            }
        }
    } }

iiiiiiiiiii для driverId, представленного полем драйвера, инициированным в Метод OnCreate

, решенный с помощью CLOUD FIRESTORE, по-прежнему не знает, почему ссылка на FIREBASE была пропущена, хотя

0 ответов