gpt4 book ai didi

ios - observeSingleEvent(:with:) fetching old data

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:18 25 4
gpt4 key购买 nike

背景:

我有一个应用程序,新用户可以在其中填写注册表单(包括用户名、电子邮件和密码)来注册帐户。当新用户提交表单时,应用程序会检查其 Firebase 数据库以查看用户名是否已被占用。这里的问题是 observeSingleEvent(of:with:) 没有得到最新的数据。当我直接从 Firebase 控制台更新数据时,更改不会反射(reflect)在 observeSingleEvent(of:with:) 的返回结果中。即使在应用重新启动之间,也不会返回新的数据更改。

关于这个问题,我唯一看到的是 here .用户说在使用 observeSingleEvent(of:with:) 时不启用持久性。但是,我禁用了持久性。此外,我将 FIRDatabase 实例上的 keepSynced() 设置为 false(我也试过 true)。两种设置都不走运。

这是我正在尝试的示例:

let usersDatabaseReference = FIRDatabase.database().reference().child("users")
usersDatabaseReference.keepSynced(false)

// Query the database to see if the username is available
// The user with the username "mark" was removed from the database via the Firebase console
let username = "mark" // This user used to exist in the database (and was previously added through the app).
usersDatabaseReference.child(username).observeSingleEvent(of: .value, with: { (snapshot) in ... } )

上面的代码块应该返回最新的数据(用户“标记”不应该存在的数据)。

我想知道是否还有其他人遇到过这个问题,或者是否有人有可能的解决方案。

注意:使用 iOS 10.1 和 swift 3 进行开发。

最佳答案

observeSingleEvent(of:with:) 只返回一次值

试试这个:

refHandle = postRef.observe(FIRDataEventType.value, with: { (snapshot) in
let postDict = snapshot.value as? [String : AnyObject] ?? [:]
// ...
})

这将在数据库事件上添加一个监听器 link

关于ios - observeSingleEvent(:with:) fetching old data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43145293/

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