gpt4 book ai didi

arrays - 不确定如何访问 firebase 数据库中的每个值

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

我正在尝试从 firebase 实时数据库中读取值。然而,当我尝试阅读它时,我最终得到了一个我无法访问任何值的数据结构。

  ref.child("messages").observeSingleEvent(of: .value, with: { (snapshot) in
if let data = snapshot.value as? [String: Any] {
let values = Array(data.values)

for objects in values{
print(objects)
}
}

}) { (error) in
print(error.localizedDescription)
}

我想要达到的结果是:

    39
-121
"rhwkfncdnfk"
1000

39.583869396
-125.38589543
"This is the first message"
100

但是在控制台中我得到的值是:

    {
CoordinatesLat = 39;
CoordinatesLong = "-121";
Message = rhwkfncdnfk;
Range = 1000;
}
{
CoordinatesLat = "39.583869396";
CoordinatesLong = "-125.38589543";
Message = "This is the first message";
Range = 100;
}

当我打印 snapshot.value 时,我得到:

 Optional({
"2B3BF5F1-E9DF-4292-9278-15B8C5849C15" = {
CoordinatesLat = "39.583869396";
CoordinatesLong = "-125.38589543";
Message = "This is the first message";
Range = 100;
};
"7C000DB1-EA91-4129-B944-A0A09E6D24C7" = {
CoordinatesLat = 39;
CoordinatesLong = "-121";
Message = rhwkfncdnfk;
Range = 1000;
};
})

我不确定如何解析正在打印的内容并获取实际值。

最佳答案

如果您调用 .value,Firebase 会以您存储的类型返回底层节点/属性的值。因此,您的 Message 将作为字符串返回,Range 作为数字返回,纬度和经度作为字符串返回(因为这就是您存储它们的方式)。

ref.child("messages").observeSingleEvent(of: .value, with: { (snapshot) in
print(snapshot.childrenCount); // prints the number of messages

for message in snapshot.children.allObjects as! [FIRDataSnapshot] {
print(message.key); // "2B3BF5F1-E9DF-4292-9278-15B8C5849C1"

print(message.childSnapshot(forPath: "Message").value); "This is the first message"
print(message.childSnapshot(forPath: "Range").value); 100

}

}) { (error) in
print(error.localizedDescription)
}

关于arrays - 不确定如何访问 firebase 数据库中的每个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53925172/

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