无法在Firebase Child中获取用户。值始终为nil

时间:2019-05-27 06:26:16

标签: swift xcode firebase

当我调用此FetchUser方法时,由于snashotDict为nil,应用程序崩溃了,该如何解决?

当调用FetchUser()方法时,并且当新用户登录时,它工作正常,问题在于进入snapshotDict时,它总是返回else,然后退出该方法,我添加了它来处理异常。需要帮助以弄清楚为什么我无法加载已经在其中的所有用户的列表。

下面是FetchUser()方法中的代码:

   let userDB = Database.database().reference().child("users")
    userDB.observe(.childAdded) { (snapShot) in

        for child in snapShot.children {
            if let child = child as? DataSnapshot {
                guard let snapshotDict = child.value! as? [String: AnyObject] else {
                        return
                    }
                let user = User()
                user.email = snapshotDict["Email"] as! String
                user.name = snapshotDict["FullName"] as! String
                user.UID = snapshotDict["UID"] as! String

                if (user.email != Auth.auth().currentUser?.email){
                    self.users.append(user)
                    self.configureTableView()
                    self.tableView.reloadData()
                }
            }
        }
    }

我希望得到用户列表,因为self.conigureTableView()将重新加载tableView,并且一切正常,错误/崩溃发生在 user.email = snapshotDict [“ Email”]为!字符串或以下任何其他两个。因为snapshotDict为零。

下面是Firebase数据库的屏幕截图。 Firebase's screenshot

0 个答案:

没有答案