我做了一个以下的系统,用户可以相互关注,但目前并不是非常有用。我似乎无法知道如何只显示你关注的用户的帖子 - 所以我在这里问你如何做。显示你关注的用户的帖子 - swift&firebase
让我告诉你数据库的设置方式:
正如你可以看到我有一个名为Users
水龙头 - 在那里所有的用户ID存储。无论何时用户想要关注另一个用户,都会点击Following
,并在其下按下当前用户按下的用户 - 他/她的ID将存储在Following
下。然后将当前的用户ID添加到他/她在Followers
下的用户。很简单但很复杂的解释:D我希望你得到我要去的地方。
所以现在我只想显示我关注的用户的帖子。你会怎么做?您是否会这样做:当用户发布帖子时,它会在名为Posts
的龙头下添加到自己的名称中,并添加到PostsToFollow
下的所有用户名称中?我只是认为它会占用数据库中的很多空间?没有更好的方法来做到这一点?
那么这里是我的代码的一部分,让我所有的当前用户追随者。我如何使用该代码来创建新帖子,并将其添加到他们的postsToFollow
?
func startObersvingDB() {
FIRDatabase.database().reference().child("Users").child(IDgotten).child("Followers").observeEventType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in
var newUpdates = [FollowersStruct]()
for update in snapshot.children {
print(update)
let updateObject = FollowersStruct(snapshot: update as! FIRDataSnapshot)
newUpdates.append(updateObject)
}
self.updates = newUpdates.reverse()
self.tableView.reloadData()
}) { (error: NSError) in
print(error.description)
}
}
弗兰克:
我做了这个添加整个帖子所有正在关注我的用户的用户。我无法这样做,因为我在帖子上有一个like和comment按钮,所以一个用户帖子上的喜欢与其他用户帖子不一样,这就是为什么我认为在followers墙上添加关键帖子的原因是很棒的。但我该怎么做?
到目前为止,我已经做这个,要完成的任务,你说:-):
let feed = Sweet(content: update, addedByUser: name!, profilePhoto: uid, likesForPost: ["user id": false], date: timePosted, category: 1, workoutComment: "", workoutTime: "")
let feedRef = FIRDatabase.database().reference().child("feed-items").childByAutoId()
feedRef.setValue(feed.toAnyObject())
FIRDatabase.database().reference().child("Users").child(uid).child("Followers").observeEventType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in
var newFollowers = [FollowersStruct]()
for updateFollowers in snapshot.children {
let updateObjectFollowers = FollowersStruct(snapshot: updateFollowers as! FIRDataSnapshot)
newFollowers.append(updateObjectFollowers)
}
self.followings = newFollowers
print(self.followings.count)
for i in 0..<self.followings.count {
let followers = self.followings[i]
let feedRefFollowers = FIRDatabase.database().reference().child("Users").child(followers.Id).child("Wall").childByAutoId()
feedRefFollowers.setValue(feed.toAnyObject())
}
}) { (error: NSError) in
print(error.description)
}
这听起来像我应该增加的职位关键用户“墙”去了。但是,我将如何读取所有这些密钥,然后才能发布帖子? –
如何获得新增加的帖子的关键? –
我编辑了这篇文章并附有一条消息给你,你可以在这里看到我想要做的事情:D –