加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift&Firebase |检查用户是否存在用户名

发布时间:2020-12-14 04:46:15 所属栏目:百科 来源:网络整理
导读:我正在尝试允许用户通过搜索用户名来启动游戏并关注其他用户.我需要能够确保具有该用户名的用户存在.我使用以下代码但是虽然调用了if,但是当它应该调用时,它不会被调用. let checkWaitingRef = Firebase(url:"https://test.firebaseio.com/users")checkWaiti
我正在尝试允许用户通过搜索用户名来启动游戏并关注其他用户.我需要能够确保具有该用户名的用户存在.我使用以下代码但是虽然调用了if,但是当它应该调用时,它不会被调用.

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数据树

{
    "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"
    }
}

解决方法

轻松修复:

不要使用.childAdded,因为当查询找不到任何内容时,块将不会执行.

而是使用.Value并检查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)
            }
     }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读