gpt4 book ai didi

swift - 无法从 Firebase 获取值(value)

转载 作者:行者123 更新时间:2023-11-28 15:08:24 24 4
gpt4 key购买 nike

我试图在我设置的 Firebase 数据库中获取一个值,但我在尝试获取它时遇到了问题。在我的程序中有一个部分,我遍历 Cities 下的每个 child 并获取每个城市的名称。我认为尝试获取同一部分中每个城市的状态是个好主意,但我无法获取。下面是 JSON 对象的示例。我觉得我很接近但缺少将它们放在一起的东西。

"Users" : {
"NPNBig20BXNpX4Rz0UbMyiKAarY2" : {
"Cities" : {
"New York City" : {
"Status" : "Empty"
},
"Atlanta" : {
"Status" : "Empty"
},
"Test City" : {
"Status" : "Wow",
"Value" : "Test"
}
},
"Email" : "fakeemail@gmail.com"
}
}

代码:

guard let uid = userID else { return }
let databaseRef = Database.database().reference(fromURL: "https://testApp.firebaseio.com/").child("Users").child(uid).child("Cities")
var dataTest : [String] = []
//var cityDictionary: [String:String]()
databaseRef.observeSingleEvent(of: .value, with: {(snapshot) in
for child in snapshot.children {
let snap = child as! DataSnapshot
let key = snap.key
guard let value = snap.value else { return }
//let testData = value["Status"] **Type Any has no subscript
print("Key: ", key, "\nValue: ", value)
dataTest.append(key)
}
completion(dataTest)
})

这是打印输出

Key:  New York City 
Value: {
Status = Empty;
}
Key: Sintra
Value: {
Status = Empty;
}
Key: Test City
Value: {
Status = Wow;
Value = Test;
}

最佳答案

以下是您可以从获取Status的方法:

if let value = snap.value as? [String: AnyObject] {
let Status = value["Status"] as? String ?? ""
}

你的完整代码将是:

guard let uid = userID else { return }
let databaseRef = Database.database().reference(fromURL: "https://testApp.firebaseio.com/").child("Users").child(uid).child("Cities")
var dataTest : [String] = []
//var cityDictionary: [String:String]()
databaseRef.observeSingleEvent(of: .value, with: {(snapshot) in
for child in snapshot.children {
let snap = child as! DataSnapshot
let key = snap.key
guard let value = snap.value else { return }
//let testData = value["Status"] **Type Any has no subscript
if let value = snap.value as? [String: AnyObject] {
let Status = value["Status"] as? String ?? ""
}
print("Key: ", key, "\nValue: ", value)
dataTest.append(key)
}
completion(dataTest)
})

关于swift - 无法从 Firebase 获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48065420/

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