Я новичок в программировании на Android и создании многопользовательской игры с использованием Firebase.Я думаю о логике того, как пользователи могут запустить игру.
То, что я пытаюсь сделать, это показать тост, когда комната, в которую играют пользователи, заполняется.Но мне интересно, как другие устройства могут определить, переполнена ли комната.Я думал addListenerForSingleValueEvent
за это, но это не работает, как я ожидал.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_name);
String roomName = getIntent().getExtras().getString("ROOM_NAME");
thisRoom = FirebaseDatabase.getInstance().getReference().child(roomName);
thisRoom.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//when the room gets full, start the game
int numberOfPlayers = (int) dataSnapshot.getChildrenCount();
if (numberOfPlayers >= 2) {
Toast.makeText(MultiplayerStreetViewActivity.this, "Game Starts", Toast.LENGTH_LONG).show();
//do something
}
}
Я проверил, работает ли он, используя два эмулятора.А для первого игрока, который начал игру раньше, Тост не появляется, когда добавляется второе значение.Как устройства могут проверять, когда новые значения добавляются автоматически?Я уверен, что что-то неправильно понимаю и совершаю глупую ошибку. Как я могу делать то, что хочу?