Слушатель не был проблемой, я на самом деле хотел получить данные только один раз. Потому что я редактирую те же данные, которые я получаю.
Проблема в том, что firebase всегда пишет одному и тому же ребенку. Вот почему я подумал, что только последний пункт изменен. Когда я звоню по номеру товара
item.getNum()
Это всегда будет последним найденным значением, может быть, кто-то может объяснить это более подробно.
Так что я только что объявил предмет финальным.
final Item item = iterator.next().getValue(Item.class);
Теперь данные в базе данных Firebase изменяются в соответствии с назначением.