База данных Firebase в реальном времени: Как получить ChildrenCount при использовании AddChildEventListener? - PullRequest
0 голосов
/ 21 октября 2018

То, что я хочу сделать, это получить число детей, используя AddChildEventListener, как мы можем сделать, используя addListenerForSingleValueEvent.

Я имею в виду

thisRoom.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        int numberOfPlayers = (int) dataSnapshot.getChildrenCount();

Теперь я могу получитьДети этого номера, но мне интересно, есть ли способ сделать то же самое, используя AddChildEventListener.

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Методы в ChildEventListener инициируют отдельные дочерние узлы и не несут знания о полном результате.Единственный способ получить число дочерних узлов в ChildEventListener - сохранить собственный счетчик, увеличив его до onChildAdded и уменьшив до onChildRemoved.Это дает вам текущий счетчик: число, которое показывает, сколько детей уже обработан вашим клиентским кодом.

Чтобы получить абсолютный счетчик количества детей, используйте ValueEventListener.Обратите внимание, что присоединение ChildEventListener и ValueEventListener к одному местоположению / запросу будет передавать данные только один раз.Так что нет никакого наказания за присоединение обоих типов слушателей, по одному для каждого варианта использования.

Также см .:

0 голосов
/ 21 октября 2018

В Firebase Firestore мы можем вызвать метод datasnapshot.size();, который возвращает значение Int, вы можете попробовать это в Firebase в реальном времени.Надеюсь, это поможет.

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