如果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它是否正常工作时。有谁知道它为什么不工作?
感谢您的帮助
答案 0 :(得分:1)
我的猜测基于一个超级模糊的问题和一些编码问题:
createdBy是用户名或uid为字符串。
Username.sharedInstance.userDetail是一个对象(某种类型)
所以你要将一个字符串与一个不是字符串的对象进行比较,并且不会起作用。
此外,如果您正在查询的节点是/ workout1节点,那么您应该将参考exercise1Ref命名为workout3Ref而不是exercise3Ref。这可能有助于在代码中保持一致。
答案 1 :(得分:0)
String
与createdBy
相适应时,请检查您的财产Username.sharedInstance.userDetail
也应属于 Username.sharedInstance.userDetail
类型。