У меня есть узел, содержащий определенные данные в дереве в Firebase. Давайте назовем узел root в этом дереве как "x". Теперь, когда происходит определенное событие, часть дочерних элементов этого узла должна быть сохранена в другом месте, а остальные удалены. Итак, что я делаю, так это то, что у меня есть прослушиватель, подключенный к этому дочернему узлу, который проверяет значение узла и заботится об операции. Проверка, создание нового узла и удаление старого выполняется следующим образом:
if(status=="Complete"){
keyAppRef.child(querykey).removeValue()
val pastkey = oTwoPastRef.push().key
if(pastkey!=null){
val hashMap : HashMap<String, String>
= HashMap<String, String> ()
hashMap["slot"] = timeslot
hashMap["chamberTown"] = town
keyPastRef.child(pastkey).setValue(hashMap)
}
В приведенном выше описании keyAppRef является ссылкой на исходный узел, а keyPastRef является ссылкой на новый узел. Переменные status, timeslot и town были получены из datasnapshot в keyAppRef и сохранены через слушатель события value ранее. Теперь вместо одного создаваемого узла создается несколько узлов. Я сделал Log.d, чтобы узнать, где команда pu sh () вызывается следующим образом:
Log.d("MyMessage", "Line 4290 $querykey $pastkey")
Странно, когда эта команда журнала находится чуть ниже pu sh () .key командной строки, создан только один узел. Но когда эта команда Log.d снова удаляется, она возвращается к той же ошибке. Может кто-нибудь помочь с тем, что здесь происходит.
Это как-то связано с некоторой задержкой в процессе кода в Log.d?