gpt4 book ai didi

ios - 检索嵌套键 Firebase 数据库

转载 作者:行者123 更新时间:2023-11-28 08:20:33 25 4
gpt4 key购买 nike

我有一个使用 Swift 开发的应用程序,它使用 Firebase 作为后端。

MESSAGES
-KW83KXYFzNgo-ibxKQV
--dateSent: "2016-09-09 12:30:23+0000"
--smiley:"smiley1"
--userID:"0QggCGYr46fcz3ak8tcQjsyZ9sJ2"
Users
-- 0QggCGYr46fcz3ak8tcQjsyZ9sJ2
--name: "john"
--photo:"photoURL"

我想检索用户名并用消息显示它们,我试试这个代码:

self.ref = FIRDatabase.database().reference()
self.ref.child("messages").observe(.childAdded, with: { snapshot in
if let snapshotValue = snapshot.childSnapshot(forPath: Constants.Messages.senderId).value {
FIRDatabase.database().reference().child("Users")
.child(snapshotValue as! String).observe(.value, with: {userSnapshot in
if let userSnapshotValue = userSnapshot.value as? [String:Any] {
self.usernames.append(userSnapshotValue[Constants.UserFields.nickName] as! String)
}
})

结果是这样的:

0QggCGYr46fcz3ak8tcQjsyZ9sJ2
[]
VAMFsmkM7DObJ0x752eVT1WuICe2
[]
0QggCGYr46fcz3ak8tcQjsyZ9sJ2
[]
VAMFsmkM7DObJ0x752eVT1WuICe2
[]
0QggCGYr46fcz3ak8tcQjsyZ9sJ2
[]
VAMFsmkM7DObJ0x752eVT1WuICe2
[]

所以代码检索了键,但没有执行嵌套查询。有什么建议吗?

最佳答案

这是您想要的简化和更详细的版本:

    let usersRef = ref.child("users")
let postsRef = ref.child("posts")

postsRef.observe(.childAdded, with: { (postSnap) in

let postDict = postSnap.value as! [String:AnyObject]
let msg = postDict["msg"]!
let userId = postDict["user_id"] as! String

let thisUserRef = usersRef.child(userId)
thisUserRef.observeSingleEvent(of: .value, with: { userSnap in

let userDict = userSnap.value as! [String: AnyObject]
let userName = userDict["name"] as! String
print("msg: \(msg)")
print(" fromUid: \(userId)")
print(" userName: \(userName)")
})
})

和输出

msg: some message from uid_0
fromUid: uid_0
userName: Bill
msg: some message from uid_1
fromUid: uid_1
userName: Leroy

和 Firebase 结构

users
uid_0
name: "Bill"
uid_1
name: "Leroy"
posts
post_0
msg: "some message from uid_0"
user_id: "uid_0"
post_1
msg: "some message from uid_1"
user_id: "uid_1"

关于ios - 检索嵌套键 Firebase 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41429714/

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