Не удается получить мои данные непрерывно [дублировать]

Использование выражения Immediately-Вызываемой функции , самый простой и удобный способ заключить индексную переменную:

for (var i = 0; i < 3; i++) {

    (function(index) {
        console.log('iterator: ' + index);
        //now you can also loop an ajax call here 
        //without losing track of the iterator value: $.ajax({});
    })(i);

}

Это отправляет итератору i в анонимный функцию которого мы определяем как index. Это создает закрытие, где переменная i сохраняется для последующего использования в любых асинхронных функциях внутри IIFE.

0
задан Frank van Puffelen 26 May 2016 в 13:55
поделиться

2 ответа

Попробуйте использовать addChildEventListener:

getDatabase().getReference().addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    })
0
ответ дан Rúben Sousa 23 August 2018 в 22:13
поделиться

Эй вы попробовали использовать прослушиватель событий child_added?

Детские события

Детские события запускаются в ответ на конкретные операции, которые происходят с дочерними узлами из одной операции, такие как новый дочерний элемент, добавленный с помощью метода push () или ребенок обновляется через метод updateChildren (). Каждый из них может быть полезен для прослушивания изменений в конкретном узле в базе данных.

0
ответ дан acrisfh 23 August 2018 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: