【发布时间】:2019-01-12 04:38:29
【问题描述】:
我正在从我的 Firebase 存储中获取一些数据。数据以快照形式到达:
FirebaseDatabase.userMessagesReference?.child(contact.uid).queryOrderedByKey().queryEnding(atValue: lastMessage?.key ?? latestMessage?.key).queryLimited(toLast: 10).observeSingleEvent(of: .value, with: { (messageKeysSnapshot) in
while let childSnap = messageKeysSnapshot.children.nextObject() as? DataSnapshot {
print(childSnap)
}
}, withCancel: { (error) in
print(error.localizedDescription)
})
我想获取 children 数组的每个孩子。不幸的是,似乎出了点问题,它没有按预期工作。而不是在 while 循环中返回每个孩子,而是无限次返回第一个孩子(并且数据库中至少有 10 条消息)。
此外,当检查 messageKeysSnapshot 并将其打印到控制台(通过设置断点等)时,我可以看到有几个孩子。我绝对认为children 枚举器有问题。
我怎样才能让每个孩子都一次?
【问题讨论】:
-
你看过stackoverflow.com/questions/27341888/…吗?在那里,他们没有使用
while。 -
谢谢@CarstenHagemann 是的,他的建议是使用while循环。 (引用:
A better way might be:...)
标签: swift firebase firebase-realtime-database enumeration