我已经做了以下功能,用户可以关注对方。问题在于它没有按照应有的方式使用。在当用户写帖子,将这个标记下被保存在我的火力地堡数据库中的时刻:显示你正在关注的用户的帖子 - swift
FIRDatabase.database().reference().child("feed-items").childByAutoId()
饲料项是所有职位。我改变这不过现在,这样当用户发布的内容将保存在这里:
FIRDatabase.database().reference().child("Users").child(UserID).child("Posts").childByAutoId()
我这样做,是因为它在某种程度上告诉我,会更容易,只显示人的帖子你按照我的应用程序饲料。
在我收到的所有帖子我进(从供项)这样的时刻:
func startObersvingDB() {
FIRDatabase.database().reference().child("feed-items").observeEventType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in
var newUpdates = [Sweet]()
for update in snapshot.children {
let updateObject = Sweet(snapshot: update as! FIRDataSnapshot)
newUpdates.append(updateObject)
}
self.updates = newUpdates.reverse()
self.tableView.reloadData()
}) { (error: NSError) in
print(error.description)
}
}
然后我打电话在viewDidLoad中startObservingDB()。
如果你想在这里看到我的Sweet
结构是:
import Foundation
import FirebaseDatabase
import FirebaseAuth
import UIKit
struct Sweet {
let key: String!
let content: String!
let addedByUser: String!
let profilePhoto: String!
let itemRef: FIRDatabaseReference?
init (content: String, addedByUser: String, profilePhoto: String!, key: String = "") {
self.key = key
self.content = content
self.addedByUser = addedByUser
self.profilePhoto = profilePhoto
self.itemRef = nil
}
init (snapshot: FIRDataSnapshot) {
key = snapshot.key
itemRef = snapshot.ref
path = key
if let theFeedContent = snapshot.value!["content"] as? String {
content = theFeedContent
} else {
content = ""
}
if let feedUser = snapshot.value!["addedByUser"] as? String {
addedByUser = feedUser
} else {
addedByUser = ""
}
if let feedPhoto = snapshot.value!["profilePhoto"] as? String! {
profilePhoto = feedPhoto
} else {
profilePhoto = ""
}
}
func toAnyObject() -> AnyObject {
return ["content":content, "addedByUser":addedByUser, "profilePhoto":profilePhoto!]
}
}
在我TableViewController我用这显示自定义单元格名称等:
var update = updates[indexPath.row]
cell.nameLabel.text = update.addedByUser
等。等等
我的问题是: 我该如何改变,只显示我所关注的人的帖子?
很抱歉的长期职位
我不太清楚我的理解;你是说当用户发布帖子时,它应该检查谁跟随该用户,然后将该帖子添加到所有跟随该用户的用户?:-)是不可能做到这一点的;当一个用户发布一些东西进入他们的个人资料 - 那么所有当前的用户追随者进入一个数组并检查帖子?我真的没有线索,但添加用户帖子多个地方将需要一些空间 - 对吗? –
基本上允许用户访问其他用户配置文件不是一个好主意。阅读我在PS中建议的内容。而不是* postsToShowToUser *中的true,您可以提供发布用户的用户标识。一旦你有帖子的帖子ID和用户ID。现在,您可以在数据库的* post *部分导航postID的帖子详细信息,而不会授予用户访问其他用户帐户的权限。我已经相应地更新了我的答案。 – Dravidian
至于追加每个追随者的postID,你的用户可以只发一个帖子,然后你将不得不遍历每个users_Follwers,然后通过他们的postID,从那里你将能够获得每个最近的帖子postDetails。这不是一个坏主意,但是您会授权随机访问者访问您的其他用户的个人详细信息,并且需要很长时间才能加载所有详细信息并循环播放,您的应用用户可能不希望等待很长时间阅读他们的朋友发布的帖子...! – Dravidian