gpt4 book ai didi

firebase - 将 Firebase 快照转换到 Swift 3 对象

转载 作者:行者123 更新时间:2023-12-05 08:27:20 25 4
gpt4 key购买 nike

我正在从 Firebase 数据库中检索对象,我需要将它们转换为自定义结构类对象

类:

struct Request {
var Address: String!
var Position: Position!
var RequestID: String!
var Status: String!
}

从我的 Firebase 数据库获取快照的函数:

self.ref.child("requests").observe(.childAdded, with: { snapshot in

//I need to cast this snapshot object to a new Request object here

let dataChange = snapshot.value as? [String:AnyObject]

print(dataChange)

})

我怎样才能完成这件事?

最佳答案

一些事情。 Firebase 没有对象——它是一个 JSON 结构。当你像这样获得 snapshot.value 时:

let dataChange = snapshot.value as? [String:AnyObject]

[String: AnyObject] 将数据定义为字典。

然后您可以像这样访问 dataChange 中的键值对

let address = dataChange["address"]

let position = dataChange["position"]

从那里您可以创建新对象并将它们填充到闭包中(例如将它们添加到数组中),或者在对象中添加更多智能并传递字典并让对象填充自身。

以下是伪代码,但它展示了过程:

//create the object and populate it 'manually'
self.ref.child("requests").observe(.childAdded, with: { snapshot in

let dataChange = snapshot.value as? [String:AnyObject]

let aRequest = Request()
aRequest.address = dataChange["address"]
aRequest.position = dataChange["position"]
self.requestArray.append(aRequest)
})

Class Request {

var address = ""
var position = ""

func initWithDict(aDict: [String: AnyObject]) {
self.address = aDict["address"]
self.position = aDict["position"]
}

}

//let the object populate itself.
self.ref.child("requests").observe(.childAdded, with: { snapshot in

let dataChange = snapshot.value as? [String:AnyObject]
let aRequest = Request(initWithDict: dataChange)
self.requestArray.append(aRequest)
})

关于firebase - 将 Firebase 快照转换到 Swift 3 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41400574/

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