У меня довольно долго возникала эта проблема случайным образом, когда я физически смотрю на свою консоль firebase и вижу, что я удалил часть данных, а затем в коде я вызову print (snapshot.ref) и см. правильную ссылку (скопируйте и вставьте в браузер для двойной проверки), но каким-то образом, когда я пытаюсь получить значения снимка / итерации по его дочерним элементам, снимок содержит старые данные, которых больше нет в базе данных.
let key2 = ref.child(users).child("Employees").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
print(snapshot)
for child in snapshot.children
{
self.nameList.append((child as AnyObject).value)
}
})
Итак, моя база данных выглядит так: (картинка обрезана, но под ней нет детей)
Но каким-то образом, когда я распечатываю снимок, я получаю:
Snap (Employees) {
0 = "";
1 = "name1";
2 = "name1";
}
Это меня какое-то время расстраивает, похоже, что это может иметь какое-то отношение к старым значениям моментальных снимков, которые каким-то образом хранятся локально или каким-то образом не видят самую последнюю версию базы данных. Если это важно, у меня есть аналогичные вызовы .observeSingleEvent в этом файле, одна копия, вставленная выше, вложена в другую. Даже если бы это была проблема синхронизации, я все равно не знаю, как это могло сделать напечатанное значение старым.
Любая помощь будет так оценена.