【发布时间】:2016-07-26 07:46:29
【问题描述】:
我试图让用户通过搜索用户名来开始游戏并关注其他用户。我需要能够确保存在具有该用户名的用户。我正在使用以下代码,但虽然 if 被调用,但 else 没有在应该调用的时候被调用。
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"
}
}
【问题讨论】:
-
"但是虽然 if 被调用,但 else 不会在我想要的时候被调用" 你是什么意思?
-
@khuong291 我的意思是 if 语句被“激活”:
if snapshot.value.valueForKey("username")! as! String == username! {但即使它应该 else 语句永远不会做任何事情。 -
它是正确的,因为if语句为真,那么else语句永远不会被执行。
-
@khuong291 否,因为当 if 语句不应该为真时 else 语句不会执行。但我认为问题在于 if 语句由于 firebase 查询的传递方式而不起作用
-
你能发布更多代码吗,你的用户名是什么?并发布一张图片以查看您的 Firebase 数据库?
标签: swift firebase snapshot firebase-realtime-database