Swift& Firebase |用用户名检查用户是否存在 [英] Swift & Firebase | Checking if a user exists with a username

查看:162
本文介绍了Swift& Firebase |用用户名检查用户是否存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图让用户通过搜索用户名来开始游戏并关注其他用户。我需要能够确保具有该用户名的用户存在。我正在使用下面的代码,但是虽然如果被调用, else 在应该的时候不会被调用。 p>

  let checkWaitingRef = Firebase(url:https://test.firebaseio.com/users)
checkWaitingRef.queryOrderedByChild (username)。queryEqualToValue(\(username!))
.observeEventType(.ChildAdded,withBlock:{snapshot in
$ b $ if snapshot.value.valueForKey(username )!as!String ==用户名!{

} else {

}


$ b JSON数据树

  {
097ca4a4 -563f-4867ghj0-6209288bd7f02:{
email:test1@tes1.com,
uid:097ca4a4-563f-4867ghj0-6209288bd7f02,
username :test1,
waiting:0
},
55a8f979-ad0d-438u989u69 -aa4a-45adb16175e7:{
email:test2 @ test2.com,
uid:55a8f979-ad0d-438u989u69-aa4a-45 adb16175e7,
username:test2,
waiting:0
}
}

解决方案

简单修正:

不要使用.childAdded as当查询没有找到任何东西时,块不会执行。



改为使用.Value并检查NSNull

  let checkWaitingRef = Firebase(url:https://test.firebaseio.com/users)
checkWaitingRef.queryOrderedByChild(username)。queryEqualToValue(\ (用户名!))
.observeEventType(.Value,withBlock:{snapshot in
$ b $ if(snapshot.value is NSNull){
print(not found))
$ b} else {
print(snapshot.value)
}
}


I am trying to allow users to start games with and follow other users by searching their username. I need to be able to make sure that a user with that username exists. I was using the following code but although the if is called the else does not get called when it should.

let checkWaitingRef = Firebase(url:"https://test.firebaseio.com/users")
checkWaitingRef.queryOrderedByChild("username").queryEqualToValue("\(username!)")
            .observeEventType(.ChildAdded, withBlock: { snapshot in

    if snapshot.value.valueForKey("username")! as! String == username! {

    } else {

    }

JSON data tree

{
    "097ca4a4-563f-4867ghj0-6209288bd7f02" : {
        "email" : "test1@tes1.com",
        "uid" : "097ca4a4-563f-4867ghj0-6209288bd7f02",
        "username" : "test1",
        "waiting" : "0"
    },
    "55a8f979-ad0d-438u989u69-aa4a-45adb16175e7" : {
        "email" : "test2@test2.com",
        "uid" : "55a8f979-ad0d-438u989u69-aa4a-45adb16175e7",
        "username" : "test2",
        "waiting" : "0"
    }
}

解决方案

Easy fix:

Don't use .childAdded as the block will not execute when the query doesn't find anything.

Instead use .Value and check for NSNull

    let checkWaitingRef = Firebase(url:"https://test.firebaseio.com/users")
    checkWaitingRef.queryOrderedByChild("username").queryEqualToValue("\(username!)")
                .observeEventType(.Value, withBlock: { snapshot in

            if ( snapshot.value is NSNull ) {
                print("not found)")

            } else {
                print(snapshot.value)
            }
     }

这篇关于Swift& Firebase |用用户名检查用户是否存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆