【发布时间】:2018-10-21 16:30:55
【问题描述】:
我是 Android 编程和使用 Firebase 创建多人游戏的初学者。我在思考用户如何开始游戏的逻辑。
我要做的是在用户玩游戏的房间满时显示 Toast。但我想知道其他设备如何判断房间是否已满。我为此想到了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
}
}
我检查了它是否可以使用两个模拟器。对于较早开始活动的第一个玩家,添加第二个值时,Toast 不会出现。设备如何检查新值何时自动添加? 我确定我误解了某些东西并犯了愚蠢的错误..我该怎么做我想做的事?
【问题讨论】:
标签: java android firebase firebase-realtime-database