Используя отладчик, он показывает, что у снимка есть 3 значения, а у записей - 0, поэтому я думаю, что я неправильно использую flatMap. Возможно, есть лучший способ хранить данные в сообщениях.
static func observePosts(for user: User = User.current, withCompletion completion: @escaping (DatabaseReference, [Post]) -> Void) -> DatabaseHandle {
let ref = Database.database().reference().child("posts").child(user.username)
return ref.observe(.value, with: { (snapshot) in
guard let snapshot = snapshot.children.allObjects as? [DataSnapshot] else {
return completion(ref, [])
}
let posts = snapshot.flatMap(Post.init)
completion(ref, posts)
})
}