我在网上看到了很多类似的问题,但是从节点路径清晰的角度来看,它们很简单,删除节点所需要做的只是包含“ .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。我不确定这里还有什么。我也不知道这是否是最好的解决方案。
答案 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()