У меня есть фрагмент кода в моем встроенном приложении Swift для iOS, чтобы извлечь все узлы из базы данных Firebase Realtime.Когда я выполняю код ниже, я заметил, что он не возвращает все дочерние узлы.
Когда я запрашиваю конкретные узлы, которые не возвращаются по отдельности, сначала код возвращает 'nil', а затем со второй попытки извлекает узлы.(без каких-либо изменений кода в процессе).После этого процесса узел начинает отображаться в результатах с функцией извлечения всех узлов.
Пример 1: сначала возвращается ноль, а затем при второй попытке возвращает узел.То, что я вижу из консоли и определенно существует в базе данных.
ref?.child("transactions").child(email).child("14526452327").observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
let value = snapshot.value as? NSDictionary
print(value)
print("!!****************!!")
// ...
}) { (error) in
print(error.localizedDescription)
}
Следующее используется для получения всех дочерних значений;сначала он не получает все узлы, однако после запуска кода из примера 1 (дважды) он начинает возвращать соответствующий узел.
ref?.child("transactions").child(email).observeSingleEvent(of: .value, with: { (snapshot) in
let childrenCount = snapshot.childrenCount
var counter : Int = 0
for trans in snapshot.children.allObjects as! [DataSnapshot]
{
counter = counter + 1
self.ref?.child("transactions").child(email).child(trans.key).observeSingleEvent(of: .value, with: { (snapshot2) in
Я также проверил свой запрос Firebase и пределы данных, и я не приблизился к порогу для бесплатной учетной записи.Любая помощь очень ценится.