【发布时间】:2017-08-11 01:48:06
【问题描述】:
我有一个存在的 ref,我使用 observeEventType 来查询数据。但是由于用户删除了 ref,因此 ref 中可能没有数据。我使用snapshot.exists() 对其进行测试。在以下情况下snapshot.exists() 将返回false/no。由于它是错误的,我想做其他事情,但代码永远不会运行
当 snapshot.exists() 返回 false/no 时,我该怎么做?
//there is no data at levelTwo so there's nothing to observe
let levelTwoRef = dbRef.child("players").child("uid").child("levelTwo")
levelTwoRef.observeEventType(.ChildAdded, withBlock: {
(snapshot) in
if snapshot.exists(){
if let dict = snapshot.value as? [String:AnyObject]{
let power = dict["power"] as? String
let score = dict["score"] as? String
}
//this will never run because the data has been deleted
} else{
do something else as an alternative //why isn't this running??
}
})
【问题讨论】:
-
用您的数据库 JSON 结构更新您的问题(实际,作为文本而不是图像!)。
-
这不是您的 JSON 结构,您可以通过单击 Firebase 数据库控制台中的 EXPORT JSON 来获取您的 JSON 结构,将其最小化到最相关的部分,然后发布它。
-
@Dravidian 你教会了我一些新东西。我从来不知道。我会在几秒钟内完成。谢谢!
-
@Dravidian 这是我回来的:{“错误”:“身份验证令牌已过期”}
标签: ios swift firebase firebase-realtime-database