Здесь
@objc private func refreshNewsFeedTableView(_ sender: Any)
вы не выполняете никаких запросов API для получения данных, затем перезагружаете таблицу и заканчиваете обновление, а так как вы используете наблюдения здесь
ref.child("posts").observe( .childAdded, with: { snapshot in
, то выВы получите новые данные, если вам нужно будет выполнить обновление, затем вставьте весь код базы данных в функцию, замените observe
на observeSingleEvent
и вызовите его из viewDidLoad
и из метода выбора обновления
ref.child("posts").observeSingleEvent( .value, with: { snapshot in
Обратите внимание, что с предложенным подходом вы получите все дочерние элементы за раз, поэтому не забудьте очистить массив внутри обратного вызова observeSingleEvent
, чтобы избежать дублирования значений, также рассмотрите возможность создания одного массива dataSource вместо 3 здесь
self.posts.insert(post_title, at: 0)
self.timeRef.insert(post_time, at: 0)
self.userRef.insert(post_user, at: 0)
возможно с созданием модели
struct Item {
let post:String
let time:String
let user:String
}