我需要帮助从firebase删除帖子。我有post id键和所有东西,并且一直在尝试所有的方法,没有任何作用。我想删除“帖子”中的第3个孩子。我一直在尝试所有类型的代码。下面的代码甚至不会抛出错误。不知道该怎么办。我通过使用indexpath.row标记来获取值。
let postID = self.posts[sender.tag].postID
Database.database().reference().child("posts").child(uid!).child(postID).removeValue { error, _ in
if error != nil {
print("error \(error)")
}
}
测试
我试过这个,这会删除该用户下的所有内容...
Database.database().reference().child("posts").child(uid!).queryOrdered(byChild: "postID").queryEqual(toValue: postID).observe(.value, with: { snapshot in
if snapshot.exists() {
snapshot.ref.removeValue()
print(snapshot)
} else {
print("snapshot doesn't exist")
}
})
答案 0 :(得分:0)
通过
检查要删除的引用的值Database.database().reference().child("posts").child(uid!).child(postID).observe(.value, with: { snapshot in
print(snapshot.value)
})
你也可以把它们放在一起检查它是否在本地发生
Database.database().reference().child("posts").child(uid!).child(postID).removeValue()
Database.database().reference().child("posts").child(uid!).child(postID).observe(.value, with: { snapshot in
print(snapshot.value)
})
如果它是正确的,您可能无权访问数据库中的删除节点,请检查firebase控制台中的数据库规则选项卡
作为最后的手段,您可以检查您的连接,因为如果连接速度很慢,firebase将缓存您所做的更新,直到有一个良好的连接同步到云
答案 1 :(得分:0)
这很有效。
public boolean equals(Object obj) {
if (this == obj)
{
return true;
}
else if (obj == null)
{
return false;
}
else if (obj instanceof Music)
{
Music music = (Music) obj;
if (music.getArtist().equals(this.getArtist()) && (music.getTitle().equals(this.getTitle())))
{
return true;
}
}
return false;
}
@Override
public int hashCode()
{
int hash = 7;
hash = 31 * hash + Objects.hashCode(this.getArtist());
hash = 31 * hash + Objects.hashCode(this.getTitle());
return hash;
}