gpt4 book ai didi

ios - (Swift) Firebase keepSynced(true) 不起作用

转载 作者:行者123 更新时间:2023-12-01 19:45:39 27 4
gpt4 key购买 nike

在我的 Swift 项目中,我实现了 Firebase 并为我的主 tableView 定义了一个结构。在我的主 TableView 上,我有想要更新并与 firebase 同步的值。
firebase 文档提供了以下代码:
let scoresRef = Database.database().reference(withPath: "scores")
scoresRef.keepSynced(true)
我尝试在 viewDidLoad、fetchFunction 和 AppDelegate 上使用 keepSynced 函数,但显然只有当我切换到另一个 viewController 并返回到我的 mainTableView 时,值才会更新。

下面我将演示我的代码:

我将 firebase 提取到我的 TableView 的函数(包含在 ViewDidLoad 中)和 Bar 是我的结构模型:

    func fetchBars(){
let myRef = ref.child("paris")
myRef.keepSynced(true)
myRef.observe(.childAdded, with: { (snapshot) in
guard let bar = Bar.bar(from: snapshot) else {return}
self.bars.append(bar)
self.tableView.reloadData()
})
}

请帮助我解决这个问题,如果可能,请展示示例。

最佳答案

我以前被这个问题困扰了很长时间。我几乎失去了希望,并认为这确实是与 Firebase 相关的问题。

原因您正在检索缓存数据 而不是 更新的服务器数据很可能是因为您在 Firebase 控制台中设置的安全规则(或者您没有设置的安全规则!)。只需在 myRef 设置正确的规则即可允许从此数据库引用中读取(类似于 ".read" = true 的内容),您就可以开始了!

请注意 ".read" = true允许 任何人在此引用读取数据。如果这不是所需的行为,那么您应该在方便时更改安全规则。只要根据您设置的规则在您的 iOS 应用程序中允许读取,那么 keepSynced(_:)方法将更新数据而不是检索缓存的数据。

关于ios - (Swift) Firebase keepSynced(true) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657724/

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