检查是不是有孩子在场?如果仅存在则执行特定方法

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”,如果存在则将整个文件夹复制到另一个位置

如何检查 var 是不是存在于数据库列中,如果不存在则不执行任何操作

赛普拉斯 - 检查按钮是不是存在,如果存在则单击它

通过在 Sql 中使用表名中的特定单词检查表是不是存在

检查表中是不是存在行的最有效方法是啥?

检查表1中是不是存在记录的优化方法。如果没有则检查表2,否则返回默认值