gpt4 book ai didi

swift - Swift 中的 Firebase 查询

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:25 25 4
gpt4 key购买 nike

我在“/users”中有这样的结构

{
"aaa@aaa-com":{
"email":"aaa@aaa.com",
"name": "Joseph",
},
"asd@asd-com": {
"email": "asd@asd.com",
"name": "Erik"
}
}

我进行了查询以访问具有电子邮件“aaa@aaa.com”的 child :

    usersRef.queryOrderedByChild("email").queryEqualToValue("aaa@aaa.com") .observeEventType(.Value, withBlock: { snapshot in
if snapshot.exists() {
print("user exists")

} else if !snapshot.exists(){
print("user doesn't exists")


}

如果我打印(快照),我会在 xcode 中得到控制台输出:

Snap (users) {
"aaa@aaa-com" = {
email = "aaa@aaa.com";
name = "Joseph";
};
}

在执行此查询后,我试图找到某种方法来获取用户的姓名,但我没有找到实现它的方法。我试过:

    print(snapshot.value.objectForKey("name"))
print(snapshot.value.valueForKey("name"))

但我两个都没有。

你们知道怎么获取name值吗?

提前致谢!

最佳答案

这个问题很老了,还有很多其他资源。如果您还没有到达那里,希望这会有所帮助。

最简单的方法是将 snapshot.value 转换为类型 [String: AnyObject]。然后,您可以访问内部节点。

usersRef.queryOrderedByChild("email")
.queryEqualToValue("aaa@aaa.com")
.observeEventType(.Value, withBlock: { snapshot in

// if you know that your value will not be nil, then you can unwrap like below
//let foo = snapshot.value as! [String: AnyObject]

if let foo = snapshot.value as? [String: AnyObject] {
let name = foo["name"] as? String
let email = foo["email"] as? String
}

}

swift 3

usersRef.queryOrdered(byChild: "email")
.queryEqual(toValue: "aaa@aaa.com")
.observe(.value, with: { snapshot in

// if you know that your value will not be nil, then you can unwrap like below
//let foo = snapshot.value as! [String: AnyObject]

if let foo = snapshot.value as? [String: AnyObject] {
let name = foo["name"] as? String
let email = foo["email"] as? String
}

}

由于您的查询,鉴于您在 JSON 树中的位置,以上内容应该适合您。

如果您在 users 节点的树中处于上一级,并且想要获取所有值,您可以像这样访问:

usersRef.observe(.value, with: { snapshot in

let users: [User] = []

for item in snapshot.children {

if let foo = item.value as? [String: AnyObject] {
let user = User()

user.name = foo["name"] as? String
user.email = foo["email"] as? String

users.append(user)
}

}

}

关于swift - Swift 中的 Firebase 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34888644/

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