gpt4 book ai didi

swift - setValue() 同时创建和删除值

转载 作者:行者123 更新时间:2023-11-30 11:49:26 26 4
gpt4 key购买 nike

我们目前有一个按钮,第一次按下时会添加一个节点,如下/Users/UID/Interests/childByAutoID/"value",再次按下时会删除该节点上的值。第一次单击按钮时,值将添加到节点,第二次单击时会删除该值,但第三次单击会导致同时创建和删除数据库中的值。我似乎无法理解这是我的问题还是 firebase 的问题。我在下面引用了我的代码:

if(clickedArr[indexPath.row] == false){
cell.interestsImage.image = selImageArr[indexPath.row]
ref.child("Users").child(Auth.auth().currentUser!.uid).child("Interests").childByAutoId().setValue(titleArr[indexPath.row])
clickedArr[indexPath.row] = true
}
else{
ref.child("Users").child(Auth.auth().currentUser!.uid).child("Interests").observe(.childAdded, with: { (snapshot) in
if(snapshot.value as? String == self.titleArr[indexPath.row]){
self.ref.child("Users").child(Auth.auth().currentUser!.uid).child("Interests").child(snapshot.key).removeValue()
}
})

最佳答案

您必须解决的第一件事是,当第二次单击按钮时,为添加到感兴趣节点的任何子级实现监听器。监听器所做的就是在添加它时将其删除。监听器不会消失,除非您像通知观察者一样删除它们。

如果您的节点一次只包含一个值,您可以通过将子节点更改为仅添加值来修复它。

关于swift - setValue() 同时创建和删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48493121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com