如何从Firebase快照将变量分配给子节点中的值?(How do I assign a variable to a value in a child node from a Firebase Sna

编程入门 行业动态 更新时间:2024-10-17 23:25:49
如何从Firebase快照将变量分配给子节点中的值?(How do I assign a variable to a value in a child node from a Firebase Snapshot?)

我正在尽量减少向Firebase发送的数据请求数量。 我有一个快照提取以下数据:

snap (Hole1) { GreenBackX = "40.196339"; GreenBackY = "-105.07354"; GreenCenterX = "40.196336"; GreenCenterY = "-105.073409"; GreenFrontX = "40.196342"; GreenFrontY = "-105.073283"; Hazard1 = { CarryX = "40.196839"; CarryY = "-105.07104"; FrontX = "40.196893"; FrontY = "-105.070626"; Name = "R Fwy Bunker"; }; Hazard2 = { CarryX = "40.196321"; CarryY = "-105.071922"; FrontX = "40.196383"; FrontY = "-105.071573"; Name = "L Fwy Bunker"; }; Hazard3 = { CarryX = "40.196622"; CarryY = "-105.072935"; FrontX = "40.196662"; FrontY = "-105.072554"; Name = "R Fwy Bunker 2"; }; Hazard4 = { CarryX = "40.196176"; CarryY = "-105.073545"; FrontX = "40.196225"; FrontY = "-105.073167"; Name = "L Greenside Bunker"; }; HoleH = "258.74"; HoleX = "40.19664"; HoleY = "-105.070484"; }

我想要做的是分配一个变量,该变量将是Hazard1\Name 。 到目前为止,我只在文档中看到了如何获取初始值的工作示例,我这样做: let holeX = value?["HoleX"] as? Double ?? 0 let holeX = value?["HoleX"] as? Double ?? 0 let holeX = value?["HoleX"] as? Double ?? 0 ,但如果你愿意的话,我似乎无法找到任何让我达到'二级'的东西。

有一个例子似乎说你可以通过这种方式引用它: let hazard1Name = value?["Hazard1/Name"]但我无法让它工作。

I am trying to minimize the amount of data requests I make to Firebase. I have a snapshot that pulls the following data:

snap (Hole1) { GreenBackX = "40.196339"; GreenBackY = "-105.07354"; GreenCenterX = "40.196336"; GreenCenterY = "-105.073409"; GreenFrontX = "40.196342"; GreenFrontY = "-105.073283"; Hazard1 = { CarryX = "40.196839"; CarryY = "-105.07104"; FrontX = "40.196893"; FrontY = "-105.070626"; Name = "R Fwy Bunker"; }; Hazard2 = { CarryX = "40.196321"; CarryY = "-105.071922"; FrontX = "40.196383"; FrontY = "-105.071573"; Name = "L Fwy Bunker"; }; Hazard3 = { CarryX = "40.196622"; CarryY = "-105.072935"; FrontX = "40.196662"; FrontY = "-105.072554"; Name = "R Fwy Bunker 2"; }; Hazard4 = { CarryX = "40.196176"; CarryY = "-105.073545"; FrontX = "40.196225"; FrontY = "-105.073167"; Name = "L Greenside Bunker"; }; HoleH = "258.74"; HoleX = "40.19664"; HoleY = "-105.070484"; }

What I am aiming to do is assign a variable that would be Hazard1\Name. So far, I've only seen working examples in the docs showing how to grab the initial value, which I do like this: let holeX = value?["HoleX"] as? Double ?? 0, but I can't seem to find anything that gets me to the '2nd level' if you will.

There was one example that seemed to say you could do it by referencing it this way: let hazard1Name = value?["Hazard1/Name"] but I couldn't get it to work.

最满意答案

FIRDataSnapshot包含来自给定Firebase数据库位置的数据。 数据已经下载,因此没有太多优化空间,对不起:-(

我想你可能要找的是:

let ref: FIRDatabaseReference = ... ref.child("Hazard1").child("Name").observeSingleEvent(of: .value) { (snapshot) in let name = snapshot.value as! String print("Name: \(name)") }

否则,如果您只想从上述快照中获取数据,请尝试以下操作:

let snapshot: FIRDataSnapshot = ... let data = snapshot.value as! [String: Any] let hazard1 = data["Hazard1"] as! [String: Any] let name = hazard1["Name"] as! String

A FIRDataSnapshot contains data from a given Firebase Database location. The data has already been downloaded so there isn't much room for optimizations there, sorry :-(

I think what you might be looking for is:

let ref: FIRDatabaseReference = ... ref.child("Hazard1").child("Name").observeSingleEvent(of: .value) { (snapshot) in let name = snapshot.value as! String print("Name: \(name)") }

Otherwise, if you just want to get your data out of the aforementioned snapshot, try this instead:

let snapshot: FIRDataSnapshot = ... let data = snapshot.value as! [String: Any] let hazard1 = data["Hazard1"] as! [String: Any] let name = hazard1["Name"] as! String

更多推荐

本文发布于:2023-08-07 11:08:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1464485.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:快照   节点   变量   Firebase   assign

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!