gpt4 book ai didi

swift - observeSingleEvent 在屏幕上显示从 firebase 获取的数据时会出现延迟。有没有什么办法解决这一问题?

转载 作者:行者123 更新时间:2023-11-30 10:52:12 25 4
gpt4 key购买 nike

observeSingleEvent 在 Firebase 中呈现和提取数据时存在延迟。有没有办法来解决这个问题?我正在使用此函数来更新标签的文本。

func getthename() {
var n : String = ""
var ln : String = ""
let ud = (Auth.auth().currentUser?.uid)
self.ref = Database.database().reference()
self.ref.child("Users").child(ud!).observeSingleEvent(of: .value, with: {[weak self] (snapshot) in

if let getData = snapshot.value as? [String:Any] {
n = (getData["Name"] as? String)!
ln = (getData["lastName"] as? String)!
self?.name.text = "\(n) \(ln)"
}
})

}

最佳答案

必须从 Firebase 服务器加载数据,这需要一定的时间,具体取决于:

  • 您正在加载的数据量
  • 您所在连接的带宽
  • 延迟 - 在客户端和 Firebase 服务器之间发送任何数据所需的时间

在这三者中,加载的数据量通常最容易控制,并且在显示整个数据列表时通常是对性能影响最大的因素。一个简单的示例:如果您要显示用户名列表,则只需从数据库加载用户名称,而不是加载整个用户配置文件,速度会更快。因此,为了加快该场景的速度,除了 /users 之外,您可能还需要存储 /usernames

带宽和延迟取决于您的连接。因此,改善这一点的唯一方法是获得更大或更快的连接。

客户端第一次连接到数据库服务器时需要建立此连接。这可能需要相当长的时间,并且仅取决于您的带宽和延迟。

这些都无法通过 Firebase API 进行控制。没有什么神奇的“让这个更快”的 API,因为这意味着我们首先不遗余力地让它变慢。

如果您想了解 Firebase 客户端在做什么,可以 enable debug logging并研究调试输出。

关于swift - observeSingleEvent 在屏幕上显示从 firebase 获取的数据时会出现延迟。有没有什么办法解决这一问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54338969/

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