gpt4 book ai didi

swift 3 和火力地堡 : Retrieve auto id value from snapshot

转载 作者:可可西里 更新时间:2023-10-31 23:56:51 26 4
gpt4 key购买 nike

我在 firebase 上创建了下面的结构,我需要获取带有红色下划线的自动 id:

enter image description here

我创建的用于查询值的代码:

let query = reference.queryOrdered(byChild: "receiverId").queryEqual(toValue: "LKupL7KYiedpr6uEizdCapezJ6i2")
//Start process
query.observe(.value, with: { (snapshot) in
guard snapshot.exists() else{
print("Data doesn't exists")
return
}
print(snapshot.key)
}

我的“snapshot.value”导致:

Optional({
"-KaRVjQgfFD00GXurK9m" = {
receiverId = LKupL7KYiedpr6uEizdCapezJ6i2;
senderId = bS6JPkEDXIVrlYtSeQQgOjCNTii1;
timestamp = 1484389589738;
};
})

如何从上面的节点中只获取字符串 -KaRVjQgfFD00GXurK9m

我曾尝试使用“print(snapshot.key)”,但结果显示在用户 ID 上:bS6JPkEDXIVrlYtSeQQgOjCNTii1

一些想法?非常感谢。

最佳答案

.value 返回满足查询结果的父节点和所有子节点。在这种情况下,需要迭代子项(可能有超过 1 个子项匹配查询)。

snapshot.key 是父节点键 (bS6JPkEDXIVrlYtSeQQgOjCNTii1),值是所有子节点的快照(字典)。这些子节点中的每一个都是键值对:uid:value 和值是子节点、receiverId、senderId 等的字典

此代码将为匹配查询的每个用户节点打印每个子节点的 uid 和值之一,时间戳。

    let usersRef = ref.child("users")
let queryRef = usersRef.queryOrdered(byChild: "receiverId")
.queryEqual(toValue: "LKupL7KYiedpr6uEizdCapezJ6i2")

queryRef.observeSingleEvent(of: .value, with: { (snapshot) in

for snap in snapshot.children {
let userSnap = snap as! FIRDataSnapshot
let uid = userSnap.key //the uid of each user
let userDict = userSnap.value as! [String:AnyObject]
let timestamp = userDict["timestamp"] as! String
print("key = \(uid) and timestamp = \(timestamp)")
}
})

关于 swift 3 和火力地堡 : Retrieve auto id value from snapshot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41650296/

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