检查是不是有孩子在场?如果仅存在则执行特定方法
Posted
技术标签:
【中文标题】检查是不是有孩子在场?如果仅存在则执行特定方法【英文标题】:check if a child is present ? if present only then execute a particular method检查是否有孩子在场?如果仅存在则执行特定方法 【发布时间】:2015-09-16 19:24:12 【问题描述】:我有一个用户登录,我想检查该用户是否有一个子节点 "following" 。 .我如何检查它..?
这就是我创建用户的方式
var userId = authData.uid
let newUser = [
"Provider" : authData.provider,
"email" : authData.providerData["email"] as? NSString as? String,
"name" : self.Name.text,
"location" : "",
"about" : "",
"age" : "",
]
self.ref.childByAppendingPath("users").childByAppendingPath(authData.uid).setValue(newUser)
当登录用户搜索好友并点击关注按钮时,将创建子节点“following”,创建后将具有以下结构。它将(搜索用户的)UID作为KEY 和电子邮件(搜索用户的)作为值。
用户
simplelogin3
年龄:24
姓名:麦克
电子邮件:mike@gmail.com
关注
simplelogin6 : "abc@hotmail.com"但我的问题只是这个,我应该编写什么代码来检查登录用户中是否有一个子节点“跟随”? ,, 请帮助我是 firebase 和 swift 的新手
【问题讨论】:
【参考方案1】:你可以使用if let
试试这行代码:
if let childNode = newUser["following"]
println(childNode)
如果您的用户没有跟随键,它将不会在闭包之间执行代码。
【讨论】:
而不是 newUser 我写了 ref.authData.uid 因为我没有在我创建 ref 的同一个视图控制器上执行这个!但它给了我一个错误! ..这不是我想的方法,必须有其他方法! 谁能帮帮我,我真的很困惑:( 你到底想要什么? 你试图做某事的代码,它给你一个错误。 ref.childByAppendingPath("users").observeSingleEventOfType(.Value, withBlock: snapshot in if let childNode = self.ref.authData.uid["following"] ) "error" : type "String Index" 不符合协议 "string literal convertible"【参考方案2】:使用 Null 检查方法我解决了这个问题,
ref.observeSingleEventOfType(>value, withBlock:snapshot in
if snapshot.value is NSNull
// do this 'else
// 这样做
)'
【讨论】:
以上是关于检查是不是有孩子在场?如果仅存在则执行特定方法的主要内容,如果未能解决你的问题,请参考以下文章
批处理文件以检查文件中是不是存在特定单词“test”,如果存在则将整个文件夹复制到另一个位置