gpt4 book ai didi

objective-c - 如何从 firebase 数据库读取一小节

转载 作者:行者123 更新时间:2023-11-30 12:02:07 25 4
gpt4 key购买 nike

我正在使用此代码访问 Firebase 数据库,但我无法弄清楚如何读取字符串子数组。 (JSON 结构如下))。我的代码返回顶级项目,但不返回字符串列表。有人可以帮助解决这个问题吗?

这是我从数据库读取的函数:

func sizes(userId: String = Auth.auth().currentUser!.uid, success: @escaping ([Sizes]) -> ()) {
let ref = Router.sizes.reference()
let query = ref.queryOrdered(byChild: "name") //userId)
query.observe(.value, with: { snapshot in
var array = [Sizes]()
for child in snapshot.children {
if let size = Mapper<Sizes>().map(JSON: (child as! DataSnapshot).value as! [String : AnyObject]) {
array.append(size)
}
}
success(array)
})
}

我的 Firebase JSON 如下:

{
"-SzCat_001": {
"name": "Womans",
"sizeCategories": {
"name": "Pants",
"sizeDescriptor": [
"00",
"0",
"2",
"4",
"6",
"8",
"10",
"12",
"XL"
]
}
}
}

这就是我得到的返回?

[0] = { name = "Womans" sizeCategories = 0 values {} }

我正在尝试弄清楚如何将字符串的 sizeCategories 列表读取为大小的子数组。

这是我对尺寸和尺寸类别的定义:

struct Sizes: Mappable {

var name: String = ""
var sizeCategories = [SizeCategories]()

init() {
}

init?(map: Map) {
}

mutating func mapping(map: Map) {
name <- map["name"]
sizeCategories <- map["sizeCategories"]
}
}

struct SizeCategories: Mappable {

var name: String = ""
var sizeDescriptor = [String]()

init() {
}

init?(map: Map) {
}

mutating func mapping(map: Map) {
name <- map["name"]
sizeDescriptor <- map["sizeDescriptor"]
}
}

感谢您的帮助!!!

最佳答案

为了读取这里的数据,您需要经历很多困难。你可以只是 let allMyData = snapshot.value as! [String: AnyObject]并且知道每个内部值也是 [String: AnyObject] 。但如果你真的想用这种映射技术解构成更多类型的东西,看看你的 sizes定义:

var sizeCategories = [SizeCategories]()

这表示“sizeCategories 是 SizeCategories 类型的数组”。但您的数据不是结构化为数组,而是一个字典:

"sizeCategories": {
"name": "Pants",
"sizeDescriptor": [
"00",
"0",
"2",
"4",
"6",
"8",
"10",
"12",
"XL"
]
}

您需要在此处调整该字段的定义和映射方法。

关于objective-c - 如何从 firebase 数据库读取一小节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47085733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com