Я создал следующую систему, в которой пользователи могут следовать друг за другом, но это не очень полезно на данный момент. Кажется, я не могу понять, как показывать только сообщения пользователей, которых вы придерживаетесь, поэтому я здесь, чтобы спросить вас, как вы это сделаете.Показаны сообщения от пользователей, которых вы видите - swift & firebase
Позвольте мне показать вам, как база данных создана:
Как вы можете видеть, у меня есть кран под названием Users
- там все пользователи ID сохраняются. Всякий раз, когда пользователь хочет следовать за другим пользователем, делается ответвление Following
и под ним пользователь, которому был нажат текущий пользователь, - его идентификатор хранится под Following
. И затем текущий пользовательский идентификатор добавляется к пользователю, которого он/она следует за 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)
}
}
Фрэнку:
Я сделал это для добавления всей почты всех пользователей, которые после моего пользователя. Я не могу этого сделать, потому что у меня есть кнопка напоминания и комментариев на сообщениях, поэтому подобные сообщения на одной должности не будут такими же, как и у других пользователей, поэтому я думаю, что идея добавить ключ к сообщению в стенах последователей отлично. Но как мне это сделать?
Я сделал это до сих пор, пытаясь сделать то, что вы сказали :-):
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 –