Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios queryEqualTo被跳过了_Ios_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Ios queryEqualTo被跳过了

Ios queryEqualTo被跳过了,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我正在尝试为我的应用程序设置一个viewCount,当我设置断点并遍历代码时,它总是跳过queryOrdered,我不知道为什么 func increaseViewCount(username: String, time: NSNumber){ guard let uid = Auth.auth().currentUser?.uid else{ return } let refOfUserName = Database.database().referen

我正在尝试为我的应用程序设置一个viewCount,当我设置断点并遍历代码时,它总是跳过queryOrdered,我不知道为什么

func increaseViewCount(username: String, time: NSNumber){
    guard let uid = Auth.auth().currentUser?.uid else{
        return
    }
    let refOfUserName = Database.database().reference().child("Users").child(uid)
    refOfUserName.observeSingleEvent(of: .value, with: {(snapshot) in
        let dictionaryOfUser = snapshot.value as? [String: AnyObject]
       // let currentUsersName = dictionaryOfUser?["username"] as? String
    let currentUsersName = "hello"

        if username == currentUsersName {
            print("this is the same user")

        }else{

            let postRef = Database.database().reference().child("HistoryOfPosts").child("post")
            postRef.queryOrdered(byChild: "post").queryEqual(toValue: time).observeSingleEvent(of: .childAdded, with: {(snapshotPost) in

                print(snapshotPost.exists())
                print(snapshotPost)

                let valString = snapshotPost.value
                let number = valString as! NSNumber
                var value = number.intValue
                value = value + 1
                let values = ["viewCount": value] as [String:Any]
                postRef.updateChildValues(values)

            })
        }
    })
}

数据从Firebase数据库异步加载。附加观察者后,程序将继续执行语句,而不是等待加载完成

在这种情况下,这意味着代码在附加了观察者之后会立即增加ViewCount。然后,一旦数据从Firebase服务器返回,就会执行回调块中的代码

要进入回调块,请在该块的第一条语句上放置断点