Как получить индекс элемента, содержащегося в dataSnapshot - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть запрос, который возвращает список элементов, отсортированных по определенному критерию (возврат к DataSnapShot), и я хотел бы знать позицию, занимаемую конкретным элементом в этом списке (чей ID я знаю) безпоследовательно последовательно все элементы моего списка, как в фрагменте кода ниже:

for (DataSnapshot postSnapshot: dataSnapshot.getChildren ()) {....}

Поскольку эта инструкция займет много времени, если мой список станет длинным.

Есть ли более быстрый способполучить доступ к этому пункту?

1 Ответ

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

Нет встроенной операции для получения индекса дочернего узла в снимке, поэтому вам придется сделать это самостоятельно.Если вам нужен только один элемент, вы можете просто держать счетчик в цикле.Но если вы хотите выполнять регулярные поиски, вы можете сохранить дочерние узлы таким образом, чтобы обеспечить более быстрый поиск.

Например, FirebaseArray class из библиотеки FirebaseUIхранит List дочерних снимков, чтобы обеспечить эффективный поиск на основе индекса.

Многие разработчики ведут два списка: один с ключами, а другой с объектами child.getValue(...).Но я лично считаю, что синхронизация этих двух компонентов является более тяжелым бременем, чем преимущества в производительности, которые он обеспечивает.YMMV хотя.

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