【发布时间】:2021-02-10 01:43:54
【问题描述】:
我和一个团队目前正在尝试将我们的实时 firebase 数据库连接到我们的 swift/iOS XCode 项目。我们正在努力读取当前数据库中的数据,并希望有人能解答我们的问题。
refFoods = Database.database().reference().child("food");
refFoods.observeSingleEvent(of: .value, with: { ( snapshot ) in
// Get user value
let value = snapshot.value as? NSDictionary
let foodName = value?["arborGrill/foodName"] as? String ?? "failed foodName"
// let value = snapshot.value as? [String: AnyObject]
// let foodName = value?["foodName"] as? String ?? ""
// print(value ?? "failed1")
print(foodName)
// ...
// print(self.food)
})
代码应该从中提取的数据库:
我们尝试创建一个包含食物值的结构:
struct Foods {
var foodName:String
var ratingAvg:Int
var reviewStrings:Array = [""]
}
并尝试使用 Firestore 等变通方法来使其正常工作,但均无济于事。是否需要对数据库进行不同的格式化,还是我们的 Swift 代码有问题?
【问题讨论】:
-
您分享的代码有什么问题?请注意,如果您坚持使用单个 sn-p,而不是与您尝试过的变体共享多个 sn-p,那么最容易提供帮助。
-
@FrankvanPuffelen 问题是使用 swift 保存存储在 'let value' 中的值。
-
那么
print(foodName)打印了什么?如果在调试器中检查value,它的值是多少? -
请在 let value = snapshot.value as 之后转储(value)? NSDictionary,看看你得到了什么我
标签: ios swift firebase firebase-realtime-database swiftui