2016-09-17 4 views
0

для того, чтобы иметь атомную операцию с данными в моих приложениях Firebase Android, я использую метод updateChildren(Map<String, Object> update) установить несколько значений с помощью одной команды (это предотвращает несогласованность данных.Настройка приоритетов в вызове DatabaseReference.updateChildren()?

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

использованием «не атомные» setValue(Object value, Object priority) операцию, то можно записать значение и установить приоритет в то же время. Использование updateChildren() ввода команды не позволяет для определения приоритетов.

Чтобы установить p В настоящее время я вызываю setPriority() в CompletionListener команды updateChildren(). Это работает, но вызывает странное поведение пользовательского интерфейса (элементы добавляются в нижнюю часть списка, а после этого они перемещаются в нужное место).

Каким будет рекомендуемый способ справиться с этим правильно?

ответ

1

Если вы хотите, чтобы включать в себя приоритет при вызове updateChildren, вы можете сделать это, имея ключ, который заканчивается в .priority:

map.put("path/to/child/.priority", 42); 

В общем, хотя, нет никаких причин, по-прежнему использовать приоритеты. См. What does priority mean in Firebase?

+0

Привет, Франк, спасибо за вашу быструю реакцию, я подробно рассмотрел вопрос. Пожалуйста, смотрите. – Peter

+0

Код, который я опубликовал, показывает, как вы можете обновить приоритет элемента в вызове 'updateChildren()'. Хотя я могу определенно помочь в дальнейшем замене приоритета либо 'orderByValue()', либо 'orderByChild()', это, вероятно, отдельный вопрос. Там: опубликуйте полную информацию, потому что ваш текущий способ запроса затрудняет помощь за пределами того, что я уже сделал. Предоставьте минимальный JSON (как текст, а не скриншот), который вы пытаетесь загрузить или манипулировать, и фрагмент кода того, как вы пытаетесь загрузить или манипулировать им. –

+0

Я создал новый вопрос, посвященный этой теме: [Как использовать orderByChild или orderByValue в FirebaseRecyclerAdapter] (http://stackoverflow.com/questions/39561612/how-to-use-orderbychild-or-orderbyvalue-in- а-firebaserecycleradapter) – Peter

Смежные вопросы