我有以下 Firebase 数据库结构(参见图片),它是在用户向另一个用户发送 compliment
时创建的。
- 赞美保存在
compliments
下,带有自动生成的 id compliment.key
也保存在users-compliments
下,在 senderID/receiverID 下/然后是 "complimentID":"boolean"对以指示它是否是“活跃”
我希望在允许向同一用户发送另一个赞美之前检查是否存在“有效”赞美。
但即使存在值为 1
的子节点,以下查询也会产生 null
输出。
我在这里做错了什么?
查询:
REF_USERS_COMPLIMENTS.child(currentUid).child(forId).queryEqual(toValue: "1").observeSingleEvent(of: .value) { (snapshot) in
print("snap: \(snapshot.value)")
}
控制台输出:
snap: Optional(<null>)
最佳答案
当使用 queryEqual()
时,您必须将它与 queryOrderedBy
结合使用。在您的情况下,它将是 queryOrderedByValue()
因为您想比较值:
REF_USERS_COMPLIMENTS.child(currentUid).child(forId).queryOrderedByValue().queryEqual(toValue: "1").observeSingleEvent(of: .value) { (snapshot) in
print("snap: \(snapshot.value)")
}
有关这方面的更多信息,请参阅 the docs .
关于swift - 如何使用 swift 检查 Firebase DB 节点值是否为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51166743/