我有一个帖子节点,用于保存我的FB数据库中的各个帖子。这些帖子每个都有一个users_liked
数组,其中包含一个随机生成的键,其值为当前用户uid
。我的问题是我希望能够检查此数组中是否已存在值(uid),如果存在,则执行某些操作;否则做其他事情
答案 0 :(得分:2)
只需为该路径申请快照,然后使用.exists()。
var postid = "-KGNY..."
var uid = FIRAuth.auth()?.currentUser?.uid
var ref = FIRDatabase.database().reference()
ref.child("posts").child(postid).child("users_liked").child(uid!)
.observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
if snapshot.exists() == true {
print("exists")
}
else {
print("does not exist")
}
}) { (error) in
print(error.localizedDescription)
}
(原谅我糟糕的Swift语法;它不是我说的语言)
答案 1 :(得分:0)
我正在为你写出一些代码,然后我意识到你想要Swift,我使用Java:S无论如何,概念大纲应该足够了。创建对“users_liked”节点的Firebase数据库引用,并为此引用设置单个事件值侦听器。接下来,将datasnapshot传递给“foreach”循环swift等效项,为datasnapshot的每个子项(datasnapshot.getChildren())创建一个新的数据快照“dsChild”。最后通过执行dsChild.getValue并使用equalTo()来检查每个项目是否存在值。希望这会有所帮助,抱歉我无法在Swift中写出来!