从FireBase SWIFT中检索数据

时间:2016-03-24 15:08:44

标签: swift firebase

如果addedByUser =存储在应用程序中的值,我试图从firebase数据库中获取数据。

根据我目前的情况,表中没有任何内容。

firebase数据库如下所示:

workout1    "名称"    " addedByUser"

我的代码如下所示:

workout3Ref.observeEventType(.Value, withBlock: { snapshot in
            var newWorkout = [Workout1Info]()
            for item in snapshot.children {
                let createdBy = snapshot.value["addedByUser"] as? String
                if createdBy == Username.sharedInstance.userDetail {
                    let workoutItem = Workout1Info(snapshot: item as! FDataSnapshot)
                    newWorkout.append(workoutItem)
                }
            }
            self.workouts = newWorkout
            self.tableView.reloadData()
        })

当我正常获取数据而不比较addByUser它是否正常工作时。有谁知道它为什么不工作?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

我的猜测基于一个超级模糊的问题和一些编码问题:

createdBy是用户名或uid为字符串。

Username.sharedInstance.userDetail是一个对象(某种类型)

所以你要将一个字符串与一个不是字符串的对象进行比较,并且不会起作用。

此外,如果您正在查询的节点是/ workout1节点,那么您应该将参考exercise1Ref命名为workout3Ref而不是exercise3Ref。这可能有助于在代码中保持一致。

答案 1 :(得分:0)

  • 当您将{strong> StringcreatedBy相适应时,请检查您的财产Username.sharedInstance.userDetail也应属于 Username.sharedInstance.userDetail 类型。