我尝试使用Firebase和runTransactionBlock
来更新服务器上的数组。我以前能够使用Synchronized Array (for likes/followers) Best Practice [Firebase Swift]上找到的解决方案将userToFollow
的uid添加到user
的{{1}}节点。现在,我尝试通过从Following
userToFollow
删除user
的uid来启用取消关注,但尽管Following node
成功,但数据仍未更新。这是我的代码:
runTransactionBlock
我正在尝试更新数组,首先整理static func unfollow(user: FIRUser, userToUnfollow: FIRUser) {
self.database.child("users/"+(user.uid)+"/Following").runTransactionBlock({ (currentData: FIRMutableData!) -> FIRTransactionResult in
var value = currentData?.value as? Array<String>
if (value == nil) {
print("unfollow - user has never followed user ID " + userToUnfollow.uid)
FIRTransactionResult.abort()
} else {
value = value!.filter() {$0 != userToUnfollow.uid}
}
currentData.value = value!
return FIRTransactionResult.successWithValue(currentData)
}) { (error, committed, snapshot) in
if let error = error {
print("unfollow - update user unfollowing transaction, please try again - EXCEPTION: " + error.localizedDescription)
} else {
print("unfollow - update user unfollowing success")
}
}
}
的uid,然后将此数据与Firebase同步。如何让它实际删除节点?感谢。