删除使用ChildautoID

时间:2019-01-05 05:44:58

标签: swift firebase

我在网上看到了很多类似的问题,但是从节点路径清晰的角度来看,它们很简单,删除节点所需要做的只是包含“ .removeValue”。但是,在我的情况下,这些帖子是全部由发布帖子时生成的随机ID(.ChildAutoID())指定。因此,当我尝试指定节点的路径时,会令人困惑。 The following is how my JSON structure looks like:

此外,this is my code to delete the post

但是,这是行不通的,因为postID每次都是随机的,因此要删除的路径将永远与我的目标帖子不匹配。这个问题(How to delete a child from Firebase (Swift))与我要解决的问题类似,并提出了解决方案,但是有很多缺失的方面我无法联系以适用于我的情况。我不确定用户如何保存postID并超过Child。除此之外,我不太确定如何检查帖子是否只能由其所有者删除(将当前用户ID与帖子中的userID进行比较。

更新: 通过执行以下操作,我可以删除该帖子: -我没有使用ChildbyAutoID指定节点,而是使用了简单的postID = UUID()。uuidString -我在JSON文件中添加了另一个变量postID,该变量与节点相同:查看更新后的JSON

现在在我的Blog tableView中,查询特定行中给定单元格的PostID,并将其包括在删除路径中。

有两个限制: -您只能删除一个帖子(您需要离开视图并返回以删除另一个视图)

p.s。我不确定这里还有什么。我也不知道这是否是最好的解决方案。

1 个答案:

答案 0 :(得分:0)

如果要从Firebase中删除具有自动递增子代ID的节点,则必须通过要删除的节点中存在的任何唯一值来标识该节点,例如此处我已按日期标识了该节点,已在具有自动递增子代ID的每个消息节点中插入日期。如果您有任何疑问,请在下面评论。我们很乐意为您提供帮助。

list_final=[['Harry Potter', 'JK Rowling', '55', '2'], ['Start With Why', 'Simon Sinek', '42', '1.5'], ['P With Python', 'John Smith', '40', '1.5']]

file_contain_db_write = open("books.txt", "w")
for each in list_final:
    file_contain_db_write.write(str(", ".join(str(each))))
    file_contain_db_write.write("\n")
file_contain_db_write.close()