Ios 查询及;在Firebase的何处(swift 3)

Ios 查询及;在Firebase的何处(swift 3),ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,如何在firebase中进行查询?在oracle sql上,查询将是 "select * from users where username = "SomeUser" 我需要在Firebase和Swift 3上做同样的事情 您需要使用queryOrderedByChild和queryStartingAtValue。这会让你从正确的方向开始 查询启动值(用户名)。查询启动值(用户名) queryEqual(toValue:username) Swift 3和Firebase 3 我希望这能帮助你

如何在firebase中进行查询?在oracle sql上,查询将是

"select * from users where username = "SomeUser"
我需要在Firebase和Swift 3上做同样的事情


您需要使用
queryOrderedByChild
queryStartingAtValue
。这会让你从正确的方向开始

查询启动值(用户名)。查询启动值(用户名)

queryEqual(toValue:username)

Swift 3和Firebase 3

我希望这能帮助你理解。我们开始

这是数据结构的示例:

代码如下:

    let username = "DavidMouse"

    // create searchRef or queryRef you name it
    let searchRef = FIRDatabase.database().reference().child("users").queryOrdered(byChild: "username").queryEqual(toValue: username)

    // search the username
    searchRef.observeSingleEvent(of: .value, with: { (snapshot) in

        guard snapshot.value is NSNull else {

            // yes we got the user
            let user = snapshot.value as! String
            print("\(user) is exists")
            return
        }

        // no there is no user with desire username
        print("\(username) is exists")
    }) { (error) in
        print("Failed to get snapshot", error.localizedDescription)
    }

显示您的firebase数据库结构。为什么您同时需要
.queryStartingAtValue(用户名)
.queryEndingAtValue(用户名)
?有没有一种更简单的方法来搜索所有具有特定值的结果?我看到有一些
queryEqual(toValue:Any?
函数。在这种情况下,我们可以通过在queryOrderedByChild调用中指定嵌套子项的相对路径,按照嵌套在
users
键下的值对列表元素进行排序。
let searchRef = FIRDatabase.database().reference().child("users").queryOrdered(byChild: "username").queryEqual(toValue: username)
    let username = "DavidMouse"

    // create searchRef or queryRef you name it
    let searchRef = FIRDatabase.database().reference().child("users").queryOrdered(byChild: "username").queryEqual(toValue: username)

    // search the username
    searchRef.observeSingleEvent(of: .value, with: { (snapshot) in

        guard snapshot.value is NSNull else {

            // yes we got the user
            let user = snapshot.value as! String
            print("\(user) is exists")
            return
        }

        // no there is no user with desire username
        print("\(username) is exists")
    }) { (error) in
        print("Failed to get snapshot", error.localizedDescription)
    }