【发布时间】:2020-03-14 21:58:49
【问题描述】:
我正在尝试构建一个表格视图来显示喜欢当前用户帖子的用户。例如,“John Smith、Tom Jones 和 Sally Hughes 喜欢你的帖子(在单元格中显示帖子的图像”。我认为我的方法是正确的,但我想知道我的数据结构是否会使这变得不必要地困难或者如果有更简单的方法。
我的 Firestore 数据结构就在下面。 “BmV...”是userId,“-M0e...”是postId,“Ff0...”和“nIh...”是喜欢的users post。
"likeActivity" : {
"BmvRlWWuGRWApqFvtT8mXQlDWzz2" : {
"-M0efUXcZy43fDVXjTvT" : {
"Ff0CxZhQzYVHuqbnsiOKwRAB01D2" : true,
"nIhx1SnChjapy4cbrD5sC1WIZXM2" : true
}
},
}
我的第一个问题是,这是否是构建这些数据的最佳方式?然后,在ActivityViewController 中使用下面的代码来检索当前用户的带有活动的帖子。
var activityDict = [String: [Any]]()
let newActivity = DataService.ds.REF_LIKE_ACTIVITY.child("\(uid)")
//print("NEW POST - \(newPost)")
newActivity.observe(.value, with: { (snapshot) in
self.posts = []
if let snapshot = snapshot.children.allObjects as? [DataSnapshot] {
for snap in snapshot {
print("ACTIVITY -- \(snap.key)")
let userLikeData = DataService.ds.REF_LIKE_ACTIVITY.child("\(uid)").child(snap.key)
userLikeData.observe(.value, with: { (snapshot) in
self.posts.append(snap.key)
print("SNAPSHOT VALUE -- \(snapshot)")
if self.activityDict["\(snap.key)"] != nil {
self.activityDict["\(snap.key)"]!.append(snapshot.value!)
} else {
self.activityDict["\(snap.key)"] = [snapshot.value!]
}
self.activityTableView.reloadData()
})
}
}
})
我的下一个问题是,是否应该像我一样将活动累积在字典数组中?有没有更好的方法来组织这些数据?
【问题讨论】:
标签: ios swift firebase firebase-realtime-database