swift - 如何使用 swift 检查 Firebase DB 节点值是否为真?

标签 swift firebase firebase-realtime-database

我有以下 Firebase 数据库结构(参见图片),它是在用户向另一个用户发送 compliment 时创建的。

  1. 赞美保存在 compliments 下,带有自动生成的 id
  2. 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>)

enter image description here

最佳答案

当使用 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/

相关文章:

swift - 使用 URLSessionDataTask 时 Cookie 不存在

json - 发送 post 数据 nsurlsession

firebase - 在 Flutter App 中查找邮箱和用户名是否已经存在于 Firebase Auth 中

node.js - Firebase 管理员无法获取有效的 Google OAuth2 访问 token - 无法验证证书

java - Firebase 数据库检索多个 child 的总和

angularjs - 循环遍历 firebase 数据库对象并 ng-repeat 结果

swift - 如何创建用于写入的文本文件

ios - 快速获取单例实例

java - 当应用程序处于后台时 Android 通知

javascript - 如何在react-native中导出所有项目的const