Swift Firebase删除帖子

时间:2017-11-22 07:03:18

标签: ios swift firebase firebase-realtime-database firebase-storage

我需要帮助从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)")
                }
            }

enter image description here

enter image description here

测试

我试过这个,这会删除该用户下的所有内容...

 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")
                }
            })

2 个答案:

答案 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;
}