Получить всех детей (пользователей) из firebase, но показать кнопку одному ребенку (пользователю)? - PullRequest
0 голосов
/ 14 февраля 2019

enter image description here Я хочу показать кнопку только одному пользователю из всех пользователей.Я попытался orderByKey(), но это не сработало!

У модели пользователя есть идентификатор участника, я попробовал с orderByChild("id"), но тот же результат!

Я попробовал даже следующий трюк!

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);
                }
            }
//rest of the code

Например: если список детей (пользователей) содержит 4 участника, я хочу показать кнопку только одному человеку или первому человеку, который вставил данные.Я не хочу использовать узел timeStamp в модели пользователя.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Изначально (в 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
0 голосов
/ 14 февраля 2019

То, что вы можете искать, это Firebase Query, который дает вам возможность найти ребенка в соответствии с вашими потребностями.Взгляните на документы здесь:

https://firebase.google.com/docs/reference/android/com/google/firebase/database/Query

Взгляните на метод addListenerForSingleValueEvent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...