swift - Firebase 数据库:如果子对象具有特定值,则检索节点
问题描述
我正在使用 Firebase 在 iOS 中开发应用程序。想知道我是否可以在节点中获取数据,如果子对象具有特定值?
例如,下面是我的数据库结构:
如果我获取数据,它会获取节点内的所有数据。但是,我的应用程序解决方案要求我仅在为 false 时才显示此节点。如果为真,则不会显示。
LEREDrwBDM952MpVtUE
monitored
monitored
我的代码:
refChilds = Database.database().reference()
let userId: String = (Auth.auth().currentUser?.uid)!
//observing the data changes
refChilds.child("childId").child(userId).child("uid").queryOrdered(byChild: "monitored").queryEqual(toValue: "false").observe(DataEventType.value, with: { (snapshot) in
使用上面的代码,我注意到能够获取任何东西。这是获取数据的正确方法吗?
编辑:
除了我的问题,我想知道现在如何将 childvaluemonitored
从 false 更新为 true?我在访问第二个子节点时遇到问题LEREDrwBDM952MpVtUE
。我的代码在下面创建了一个新节点TGEcwrz..
这是我的代码。
refChild.child("childId").child(userId).updateChildValues(["monitored":monitored!])
解决方案
您的代码中有一段uid
不在 JSON 中。从我看到的查询应该是:
refChilds.child("childId").child(userId).queryOrdered(byChild: "monitored").queryEqual(toValue: false).observe(DataEventType.value, with: { (snapshot) in
推荐阅读
- c++ - 将 ifstream 文件和每一行读入一个数组
- r - R: rbind 字符串到因子列
- salesforce - 从visualforce页面将静态/硬编码值传递给控制器
- amazon-web-services - 多种文件类型的 aws cloudfront 路径模式
- javascript - 反应 this.setState 问题
- html - 如何从后面的.vb代码中动态创建的HTML控件获取值
- javascript - 真的很简单的颜色选择器怎么导入呢?
- visual-studio-code - 打开硬盘驱动器时我的 vscode 覆盖 nautilus
- javascript - Vue JS:如何在简单的 Vue 示例中将复选框与相关选择绑定?
- r - 编辑 data.frame 中的每一行