Я делаю онлайн-шахматы с firebase в реальном времени. у меня есть gameConnector класс для подключения игроков. Чтобы подключиться, я изменяю значение переменной, и другой игрок должен прослушивать это изменение с помощью ValueEventListener. Оба игрока используют один и тот же класс. Моя проблема в том, что значение всегда преобразуется в хэш-карту вместо желаемого (Move класс) тип.
public class GameConnector {
private DatabaseReference reference;
private ValueEventListener moveValueListener;
public GameConnector(String gameId) {
reference = FirebaseDatabase.getInstance().getReference("connections/"+gameId+"/moves");
moveValueListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
Object value = snapshot.getValue();
if (value == null) return;
Move move = (Move) value;
// react to the move...
}
@Override
public void onCancelled(@NonNull DatabaseError error) { }
};
}
public void uploadMove(Move move) {
reference.removeEventListener(moveValueListener);
reference.setValue(move);
reference.addValueEventListener(moveValueListener);
}
}
Как я могу это исправить?
![Преобразование объекта Firebase в исключение hashmap [closed] TheFAQ.ru](https://thefaq.ru/wp-content/uploads/2023/01/logo-250.png)