Я готовлю собственное приложение для iOS с использованием реальной базы данных Firebase.
У меня около 100 тыс. Данных .. Мне нужно показать последние 50 постов, а после загрузки еще 50 постов, поэтому я внедрил пейджинг из 50 записей, однако это заняло много времени (около 20-30 секунд).
ТАКЖЕ я пытался с индексировать с правилами в базе данных.
К вашему сведению: с 1000 записями все работает нормально.
Как улучшить производительность?
let post_messagesReference = self.databaseRef.child(FirebaseTablePostMessages)
var query = post_messagesReference.queryOrdered(byChild: kCreated)
var lastKey = String()
var createdVal = Int()
if let last = self.endKeyCommunity.first {
lastKey = last.id
createdVal = Int(last.created)
}
//get first 50 records
if self.endKeyCommunity.count == 0{
query = query.queryLimited(toLast:50)
self.showLoaderView()
} else { //get next 50 records
query = query.queryEnding(atValue: createdVal).queryLimited(toLast: 50)
}
query.observeSingleEvent(of: .value, with: { (snapshot) in
guard let children = snapshot.children.allObjects.first as? DataSnapshot else { return }
if snapshot.childrenCount > 0 {
for child in snapshot.children.allObjects as! [DataSnapshot]{
guard case let communityChatDictionary as NSDictionary = child.value else { return }
if lastKey != child.key{
}
guard case let communityChatDictionary as NSDictionary = children.value else { return }
}
}) { (error) in
}