Итак, у меня есть игровое лобби, в котором, когда пользователь создает игру, его имя пользователя и количество игровой валюты, на которое он делает ставку в игре, отображается на экране, чтобы все игроки могли видеть его в RecyclerView.
Таким образом, в этом случае пользователь с именем 'Brent_MB' создал игру

Но проблема в том, что игрок поставил ставку в 2,00 на игру, и она не появится. (2.50 - это номер по умолчанию, который появляется)
Вот так выглядит моя структура базы данных

Итак, поскольку эта база данных настолько динамична, она буквально меняется каждый раз, когда кто-то хочет играть в игру, и она удаляется при запуске игры, как я могу назначить значение ставки в слоте, который в настоящее время говорит «2,50»?
Вот что я пытался сделать:
Я создал обратный вызов для переменной пари, как это,
public void getWager(final WagerCallback wagerCallback) {
FCGames.child("What do I put here to check each node every time a node is added")
.child("wager").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
wagerr = (long) dataSnapshot.getValue();
String wagerD = Double.toString(wagerr);
wage = wagerD.endsWith("0");
wagerCallback.onCallback(wagerD);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
У меня также есть интерфейс Callback с этим, но он не выглядит актуальным.
и затем я вызываю этот метод в своем классе RecyclerView следующим образом:
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
String userName = mData.get(position);
holder.userName.setText(userName);
holder.bind(mData.get(position), position, listener);
fcl.getWager(new FlipCoinLobby.WagerCallback() {
@Override
public void onCallback(String wager) {
holder.wager.setText(wager);
}
});
}
Как вы можете видеть, в этой строке я застрял на том, что нужно указать в качестве первого дочернего элемента, чтобы он мог проверять каждого дочернего элемента при добавлении и получать это значение ставки. \
FCGames.child("What do I put here to check each node every time a node is added").child("wager")
Что я должен поместить туда, чтобы он мог получить значение ставки от каждого узла и соответствующим образом назначить его области просмотра текста?
Каждый начальный узел в базе данных FCGames хранится в ArrayList с именем openGames. Я могу показать, как узлы добавляются в этот список при необходимости
wages.add(wagerD);
for(int i=0; i <= openGames.size(); i++) {
wagerCallback.onCallback(wages.get(i));
}