gpt4 book ai didi

ios - 在 Swift 中将数组发布到 firebase 数据库

转载 作者:行者123 更新时间:2023-11-28 11:00:48 25 4
gpt4 key购买 nike

问题
我需要将数据发布到 firebase 数据库中,它(就数组而言)只能接受 NSArray 类型。然而,应用程序需要添加到数组中

将发布的 Json 数据

Object: someObjectKey[
ArrayOfItems[
Item: someItemNumber
Item: someItemNumber
Item: someItemNumber
]
TimeStamp: 102047355
SomeOtherTimeStamp: null
SomeInt: 1111
someOtherInt: 2222
SomeBoolean: false
]
}

目标
如何将上面的数据推送到数据库中?

尝试的途径
-将 SwiftArray 转换为 NSArray
-将NSMutableArray转换为NSArray

代码

public func postToFireBase(){

var Timestamp: String {
return "\(NSDate().timeIntervalSince1970 * 1000)"
}

var someInt = 1111
var someOtherInt = 2222
let myArrayOfStuff = convertItemsToNSArray()

let post: [String : Any] = ["timestamp": Timestamp,
"someInt": someInt,
"someOtherInt": someOtherInt,
"items": ItemList]

//Method Call References the FIRDatabase.database.reference.child...
FirebaseDatabaseService.databaseReference.setValue(post)
}

private func convertItemsToNSArray() -> NSArray{
var thisArray: NSMutableArray = []

for item in items{
thisArray.add(["name": "Foo",
"key": "Bar",
"someCoolInt": 1234])
}
return thisArray
//This won't work because it's coming back as NSMutableArray anyway
}

干杯

最佳答案

我不记得确切的原因是什么,但在 android 和 Ios 中也遇到过类似的问题。解决方法是通过先将数组转换为字典来保存数组。

假设我有经度和纬度数组:

我首先创建一个类来包装纬度和经度。我有一个函数来获取包含所需数据的字典。

class HiddenLatlng {
private var latitude: Double
private var longitude: Double

init(lat: Double, lng: Double) {
self.latitude = lat
self.longitude = lng
}

func toDictionery() -> [ String : Double ] {
var dict = [ String : Double ]()
dict["latitude"] = self.latitude
dict["longitude"] = self.longitude
return dict
}

在将数组保存到 firebase 之前,首先使用上述类将此数组转换为字典。

       var dict = [String: AnyObject]() // main dictionary saved to firebase

var dictArray = [ String : [String: Double] ]() // temp dictionary
for (index, element) in hide.vertices.enumerate(){
dictArray[String(index)] = HiddenLatlng(lat: element.latitude, lng: element.longitude).toDictionery()
}
dict["eventLatLngList"] = dictArray // add temp dictionary to main dictionary.

`

现在我们可以将它保存到 firebase。

self.reference.child("yourKey").child(key).updateChildValues(dict) { (error: NSError?, reference: FIRDatabaseReference) in
completion(error) // if some error handle it.
}

我希望它能为您节省一些时间和麻烦:)

关于ios - 在 Swift 中将数组发布到 firebase 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40624313/

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