Изначально (в xml), установив видимость кнопки на «ушел», а затем реализовав код примерно так:
int times=0; //class varaible
usersListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot ds, String ss) {
OnlineUser ou = ds.getValue(OnlineUser.class);
if (ou == null) return;
if (times == 0 && myId.equals(ou.id)) {
times++;
button.setVisibility(View.VISIBLE);
}
}
не будет работать, чтобы показать кнопку только первому пользователю .Скорее кнопка будет видна всем пользователям, поскольку теперь свойство видимости кнопки установлено на видимость.Следовательно, это будет видно каждому дочернему элементу / пользователю.
Вам не хватает, чтобы снова сбросить видимость, которая исчезла.Поэтому я предлагаю следовать вашему коду:
int times=0; //class varaible
usersListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot ds, String ss) {
OnlineUser ou = ds.getValue(OnlineUser.class);
if (ou == null) return;
if (times == 0 && myId.equals(ou.id)) {
times++;
button.setVisibility(View.VISIBLE);
} else {
button.setVisibility(View.GONE);
}
}
//rest of the code