无法使用 swift 3 在 firebase 中节点特定值
Posted
技术标签:
【中文标题】无法使用 swift 3 在 firebase 中节点特定值【英文标题】:Unable to node specific values in firebase using swift 3 【发布时间】:2017-10-16 07:50:50 【问题描述】:我能够获取所有用户,但我需要特定于用户 ID 的数据。 例如,您可以在这里看到很多用户已注册,但我只需要 3 个节点的详细信息: 323QGP6qryTWs7EnnXRX1stgocP2
iy5ssz0ALphtgViALEOG0N4TeGd2
OlA0rhAVfsNvixe8KEsUmdCfuN42
请帮助获取这些记录。
谢谢。
【问题讨论】:
你能显示你试过的代码吗? let ref = Database.database().reference().child("users").child("7dqW2ckp8ZQQvQbJZRAGlRRZs8Z2").child("requests").queryOrdered(byChild: "OlA0rhAVfsNvixe8KEsUmdCfuN42") .queryEqual(toValue: true) ref.observe(.value, with: (snapshot: DataSnapshot) in print("Getting Requests:(snapshot)") ) 【参考方案1】:let ref = Database.database().reference().child("users").observeSingleEvent(of: .value, with : snapshot in
if snapshot is NSNull
//handles errors
else
let dict = snapshot.value as? NSDictionary
let firstDict = dict["323QGP6qryTWs7EnnXRX1stgocP2"] as? NSDictionary
let secondDict = dict["iy5ssz0ALphtgViALEOG0N4TeGd2"] as? NSDictionary
let thirdDict = dict["OlA0rhAVfsNvixe8KEsUmdCfuN42"] as? NSDictionary
//Then to gather whichever node you want inside these users:
let requestedNode = THEDICTIONARYYOUARELOOKINGAT["THE_NAME_OF_THE_NODE"] as? String //String, Int, Dictionary, array, boolean, ect.
)
【讨论】:
这不是我要找的。节点不能被硬编码,因为节点会随机出现。另外我不想检索所有用户,因为有成千上万的用户。感谢您的回复。 如果您不知道密钥。而且您不想至少检索一次所有用户。你想如何获得 3 个特定的用户节点? 请看这个例子 let ref1 = xyz/(uid)/requests 这个路径会有一些 uid : uid1 = true uid2 = true 然后,让 ref1 = xyz/(uid)/users将返回: uid1:user details uid2:user details 所以,我需要用户列表中各个 uid 的用户详细信息 您在哪里找到请求?在你的uid下?还是每个uid都有一个请求节点? 每个 uid 都有一个请求节点。谢谢以上是关于无法使用 swift 3 在 firebase 中节点特定值的主要内容,如果未能解决你的问题,请参考以下文章
Firebase + Swift:无法删除 tableView 中的行
无法在 Swift 中使用来自 Firebase 的数据立即加载 UIImageView 和 UILabel