Swift 快速检查firebase值是否为真

Swift 快速检查firebase值是否为真,swift,firebase,Swift,Firebase,您好,我正在从firebase检索一些信息。我要查找的数据有三个子层,由布尔值组成。当我打印数值时,我可以得到结果,但我无法看到结果是真是假 func userInfo() { let dbRef = FIRDatabase.database().reference() let stRef = FIRStorage.storage().reference() dbRef.child("users/\(userBiD!)").observeEventType(.Valu

您好,我正在从firebase检索一些信息。我要查找的数据有三个子层,由布尔值组成。当我打印数值时,我可以得到结果,但我无法看到结果是真是假

func userInfo() {

    let dbRef = FIRDatabase.database().reference()
    let stRef = FIRStorage.storage().reference()

    dbRef.child("users/\(userBiD!)").observeEventType(.Value, withBlock: { snapshot in

        let name = snapshot.value!["firstname"] as! String
        let profileImage = snapshot.value!["profilePic"] as! String
        let receivePostRequest = snapshot.value?["receivePostRequest"]

        self.nameLabel.text = name
        self.dbUserProfilePic(self.profilePhotoImageView, imageLink: profileImage)

        let receivePost = snapshot.childSnapshotForPath("receivePostRequest")

        let tags = receivePost.childSnapshotForPath("tags")

        for child in tags.children {

            /* 
            ...
            tags{
                tag1 = true
                tag2 = false

             }
            //I need to print all keys that have a true value

            */

        }

    })

}
firebase json 因为,根据,
.children

此快照中子节点快照的迭代器。您可以在语法中为..使用本机

。然后您必须使用
.value
访问他们的数据,并使用
.key
访问他们的密钥

因此,你可以这样做

func userInfo() {

    let dbRef = FIRDatabase.database().reference()
    let stRef = FIRStorage.storage().reference()

    dbRef.child("users/\(userBiD!)").observeEventType(.Value, withBlock: { snapshot in

        let name = snapshot.value!["firstname"] as! String
        let profileImage = snapshot.value!["profilePic"] as! String
        let receivePostRequest = snapshot.value?["receivePostRequest"]

        self.nameLabel.text = name
        self.dbUserProfilePic(self.profilePhotoImageView, imageLink: profileImage)

        let receivePost = snapshot.childSnapshotForPath("receivePostRequest")

        let tags = receivePost.childSnapshotForPath("tags")

        for child in tags.children {
            // NEW
            if child.value == true {
                print(child.key)
            }
            // NEW
        }

    })

}
或者,如果要在数组中保存所有真值

func userInfo() {

    let dbRef = FIRDatabase.database().reference()
    let stRef = FIRStorage.storage().reference()

    dbRef.child("users/\(userBiD!)").observeEventType(.Value, withBlock: { snapshot in

        let name = snapshot.value!["firstname"] as! String
        let profileImage = snapshot.value!["profilePic"] as! String
        let receivePostRequest = snapshot.value?["receivePostRequest"]

        self.nameLabel.text = name
        self.dbUserProfilePic(self.profilePhotoImageView, imageLink: profileImage)

        let receivePost = snapshot.childSnapshotForPath("receivePostRequest")

        let tags = receivePost.childSnapshotForPath("tags")

        for child in tags.children {
            // NEW
            var trueValues: [Bool] = []

            if child.value == true {
                trueValues.append(child.key)
            }
            // NEW
        }

    })

}

tags.children
的结构是什么?@AMomchilov请看一下我添加的json的编辑。我通常在key values=true的位置进行查询,但因为闭包firebase中的im不允许我进行查询。