gpt4 book ai didi

ios - 从 firebase + iOS 获取数据时加载数据缓慢

转载 作者:行者123 更新时间:2023-11-28 05:48:43 25 4
gpt4 key购买 nike

我正在使用 firebase 真实数据库准备 iOS 原生应用。

我有大约 100k 的数据。我需要显示最近的 50 篇帖子,并在加载更多接下来的 50 篇帖子之后,所以我已经实现了 50 条记录的分页,但仍然需要很长时间(大约 20-30 秒) ).

此外,我还尝试使用 firebase 中的规则进行索引

仅供引用:它在处理 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
}

firebase rules index

最佳答案

尝试更改您的 Firebase 规则,以便您设置:

".read": "query.orderByKey &&
query.limitToFirst <= 100"

删除此代码 var query = post_messagesReference.queryOrdered(byChild: kCreated)。只需像这样调用您的分页请求:

post_messagesReference.limitToFirst(50)
.orderByKey(kCreated)

关于ios - 从 firebase + iOS 获取数据时加载数据缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53744683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com