Ios 我的单元格被复制以应用我对在线数据库所做的更改
有了这段代码,我可以获得数据库的快照,并将数据加载到tableView中。但是,当我尝试对联机数据库进行更改时,会得到应用更改的重复单元格,而不是应用此更改的正常单元格Ios 我的单元格被复制以应用我对在线数据库所做的更改,ios,swift,uitableview,firebase,firebase-realtime-database,Ios,Swift,Uitableview,Firebase,Firebase Realtime Database,有了这段代码,我可以获得数据库的快照,并将数据加载到tableView中。但是,当我尝试对联机数据库进行更改时,会得到应用更改的重复单元格,而不是应用此更改的正常单元格 // Create reference to databse ref = Database.database().reference() // Retrieve data from firebase database and listen for changes ref.child("Clubs
// Create reference to databse
ref = Database.database().reference()
// Retrieve data from firebase database and listen for changes
ref.child("Clubs").observe(.value, with: { (snapshot) in
print("clubs: \(snapshot)")
if(snapshot.exists()) {
let array:NSArray = snapshot.children.allObjects as NSArray
for obj in array {
let snapshot:DataSnapshot = obj as! DataSnapshot
if let childSnapshot = snapshot.value as? [String : AnyObject] {
print("myClubs: \(childSnapshot)")
if let clubName = childSnapshot["name"] as? String, let banner = childSnapshot["bannerImage"] as? String {
print(clubName)
print(banner)
let club = Club(name: clubName, image: banner)
print("new club success: \(club)")
self.nightClubs.append(club)
}
}
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
})
无论何时
Clubs
中的任何值发生更改,您都在侦听器中执行代码。代码将俱乐部附加到夜总会
数组,但不清除它。在重新填充之前,需要清空阵列:
// Retrieve data from firebase database and listen for changes
ref.child("Clubs").observe(.value, with: { (snapshot) in
print("clubs: \(snapshot)")
self.nightClubs.removeAll() // empty array before adding values
...
无论何时
Clubs
中的任何值发生更改,您都在侦听器中执行代码。代码将俱乐部附加到夜总会
数组,但不清除它。在重新填充之前,需要清空阵列:
// Retrieve data from firebase database and listen for changes
ref.child("Clubs").observe(.value, with: { (snapshot) in
print("clubs: \(snapshot)")
self.nightClubs.removeAll() // empty array before adding values
...
谢谢你,珍!真的救了我的命很高兴能帮忙!如果这个答案对你有效,那么请接受它。谢谢谢谢你,珍!真的救了我的命很高兴能帮忙!如果这个答案对你有效,那么请接受它。谢谢