OStack程序员社区-中国程序员成长平台

标题: ios - 如何使 Firebase 数据库查询让一些 child 使用 Swift 3? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 12:45
标题: ios - 如何使 Firebase 数据库查询让一些 child 使用 Swift 3?

如何在 Firebase 数据库中进行查询以在我的控制台中获取一些子项?例如,从下面的快照中,我如何进行查询以仅获取 Des: 11 处的 Image

This is a snapshot for my console in firebase database

我正在使用这段代码:

   func loadData(){


    Ref=FIRDatabase.database().reference().child("osts")

    Handle = Ref?.queryOrdered(byChild: "11").observe(.childAdded ,with: { (snapshot) in

        if  let post = snapshot.value as? [String : AnyObject] {

            let img = Posts()

            img.setValuesForKeys(post)

            self.myarray.append(img)

                self.tableView.reloadData()

        }

    })

}



Best Answer-推荐答案


正如 El Capitain 所说,您需要使用它:

func loadData(){

    let ref = FIRDatabase.database().reference().child("osts")

    ref?.queryOrdered(byChild: "Des").queryEqual(toValue: "11").observe(.childAdded, with: { snapshot in 
        if let post = snapshot.value as? [String : AnyObject] { 
            // do stuff with 'post' here.

        } 
    })

}

此外,正如他提到的,您需要设置安全规则以允许您通过“Des”或您将查询的任何其他子节点进行搜索。此外,您需要设置规则以允许您对查询位置进行读取访问:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",

    "osts": {
      "$someID": {
        ".indexOn": ["Des"]
      }
    }
  }
}

但是,您不会获得“仅图像”,您的查询将返回整个节点。在这种情况下,上面的查询将返回 rrrrrr 节点。

关于ios - 如何使 Firebase 数据库查询让一些 child 使用 Swift 3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41606963/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4