【发布时间】:2016-06-07 22:55:06
【问题描述】:
我想检查某个属性设置为某个值的对象是否存在。
以下是我在 Firebase 上的数据的示例:
object: {
object-one: {
id: "something"
}
}
现在我想获取一个 id 不存在的对象:
let objectsRef = FIRDatabase.database().reference().child("object")
let query = objectsRef.queryOrderedByChild("id").queryEqualToValue("something else")
query.observeSingleEventOfType(.Value, withBlock: { (snapshot) in
// Never get's called
})
由于没有带有id = "something else" 的条目,因此永远不会调用完成。但是我怎么知道它是不是因为互联网问题或仅仅因为该对象真的不存在而被调用?!?
【问题讨论】:
-
你总是知道对象一键吗?正在尝试获取与该值匹配的多个项目?还是只有一个?
-
基本上我想知道天气至少有一个具有特定 ID 的项目。 ID 将是登录用户的 UID
-
我刚刚做了 q 快速测试,
.Value事件在一个不存在的节点上为我触发。在那种情况下,snapshot.exists()是错误的。你确定你有阅读权限吗?见stackoverflow.com/questions/37403954/… -
对我来说,该事件也会在具有您正在使用的相同查询的不存在节点上触发。您可以使用带有“withCancelBlock”的 observeSingleEventOfType 版本来确定您是否有权限问题 ..reference here firebase.google.com/docs/reference/ios/firebasedatabase/…
标签: ios firebase firebase-realtime-database