【发布时间】:2018-01-24 08:24:56
【问题描述】:
目前我正在创建一个应用程序,用户可以在其中创建和加入活动。我正在为如何跟踪用户加入的事件而苦苦挣扎。我决定在 Firebase 中为每个用户存储一组“事件键”(事件 ID)。但是,当用户点击加入事件按钮时,Firebase 会向用户添加数百个新子项(具有相同的事件键)。它看起来像是某种无限循环(但我没有使用任何循环)。首先,我从 Firebase 加载当前事件键数组,然后将新的事件键数组附加到数组中。然后,必须更新 eventKeys 子项。
@IBAction func joinEventButtonTapped(_ sender: UIButton) {
guard let uid = user?.uid else {
return
}
let ref = Database.database().reference(withPath: "users").child(uid)
ref.observe(.value) { (snapshot) in
self.currentUser = CustomUser(snapshot: snapshot)
if let currentUserEventKeys = self.currentUser?.eventKeys, let newEventKey = self.currentEvent?.key {
var eventKeys: [String] = currentUserEventKeys
eventKeys.append(newEventKey)
let values = ["eventKeys": eventKeys]
ref.updateChildValues(values)
}
}
}
var currentUser: CustomUser?
var currentEvent: CustomEvent?
let user = Auth.auth().currentUser
我的代码有什么问题?
【问题讨论】:
标签: ios swift firebase firebase-realtime-database