【问题标题】: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 的新手

【问题讨论】:

    标签: ios swift firebase


    【解决方案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 {
    

    // 这样做

    }

    })'

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 2015-08-06
      • 2017-10-24
      • 2016-09-18
      • 2011-11-25
      • 2016-09-20
      • 2010-12-06
      • 2013-05-09
      • 1970-01-01
      相关资源
      最近更新 更多