在firebase数据库中搜索数据

时间:2018-05-04 08:11:48

标签: swift firebase firebase-realtime-database

因此,我试图查看当前用户ID是否存在于数据库中并希望返回bool值,返回数据为“Any”值,用户常量为String。我收到错误的“如果”“类型的价值'任何?”没有成员'包含'“

let user = Auth.auth().currentUser?.uid
let databaseRef = Database.database().reference()
databaseRef
    .child("Posts")
    .queryOrdered(byChild: "uid")
    .observeSingleEvent(of: .value, with: { (snapshot) in               
        print (snapshot.value)
        let returnData = snapshot.value
        if returnData.contains(user!) {
            print ("uid exists")
        }
    })

我从数据库中取回了这个值

"-LBe5petr8MUtVZd9qWw" = {
        uid = zQRxvM3cwzQMewUtVamk8JQrEFJ3;
    };
})

3 个答案:

答案 0 :(得分:1)

如果您获得快照,则uid必须存在。您可以声明json = str |> Poison.decode!(as: %Geodatajson{}) ,如果返回数据,它将更新。如果你想要uid,你需要像这样解析它:

Boolean

var userDoesExist: Bool = false

答案 1 :(得分:1)

正确的查询是

databaseRef.child("Posts").queryOrdered(byChild: "uid").queryEqual(toValue: "yourUserId")

并在完成版块中检查if snapshot.exists()

答案 2 :(得分:0)

只搜索帖子/用户/ uid,如果快照为空,则用户不存在