Firebase 获取特定父级而不是所有子级 SWIFT
Posted
技术标签:
【中文标题】Firebase 获取特定父级而不是所有子级 SWIFT【英文标题】:Firebase getting specific parent not all children SWIFT 【发布时间】:2018-07-25 03:43:30 【问题描述】:这是我在 *** 上的第一个问题,但我一生都无法解决这个问题。我正在使用 Xcode 和 Swift 4。
我想从 Firebase 中读取某个子级别,以根据那里的结果制作一个 tableView。以下是我的 Firebase 数据:
我想制作一个 tableView,其中列出了“子名称”下的 Bill 和 Josh,我似乎只制作了一个包含 Bill 和 Josh 的所有孩子的快照。我只想要直接在 subNames 子项中的项目列表。有人知道该怎么做吗?我确定我错过了什么..
这是我的代码:
var ref: DatabaseReference!
var refHandle: UInt!
override func viewDidLoad()
super.viewDidLoad()
ref = Database.database().reference()
func loadmoreData ()
refHandle = ref?.child("Users").child(FBuid).observe(.value, with : (snapshot) in
let mynamesArray = snapshot.childSnapshot(forPath: "subNames")
print (mynamesArray)
)
【问题讨论】:
请编辑您的问题以包括您如何初始化ref
。
我重新上传了代码。当我运行这段代码时,我得到的结果是:Snap (subNames) Bill = name = Bill; thissubUID = SZL9yf6EwRS5XJZIU6uQfhTfBmT2; ;乔希 = 姓名 = 乔希; thissubUID = McJWwodagxaqfOl0NSzoz4MwLrB2; ;但是,我只想要 Bill 和 Josh 的结果。
更正确地说,我想要 ["Bill","Josh"] 的结果
【参考方案1】:
要获得一个仅包含 subNames
下的键的数组,您需要这样的东西:
refHandle = ref?.child("Users").child(FBuid).child("subNames").observe(.value, with : (snapshot) in
let mynamesArray = [String]()
for child in snapshot.children
mynamesArray.append(child.key)
print (mynamesArray)
)
【讨论】:
嗨弗兰克..非常感谢您的回答..太好了..我想我不完全理解 .key 部分..但效果很好..我确实有将一行代码更正为: mynamesArray.append((child as AnyObject).key) 键是节点的名称,因此在您的情况下是Bill
和 Josh
字符串。键下的东西是它的值,可以通过快照的value
属性获得。以上是关于Firebase 获取特定父级而不是所有子级 SWIFT的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3.0 如何在 Firebase 中的父级上添加子级
在 jQuery 中,如何设置元素的“top,left”属性,其位置值相对于父级而不是文档?