我正在设计一个应用程序,每个用户将根据他/她的帖子有一个时间轴(也就是feed)。在我的数据库中,我将用户时间轴帖子保留为共享密钥。因此,feed
子树中的每个ID都属于用户关注的某个帖子。
"users": {
"userId-1": {
"userName": "Namey McNameface",
"following": {
"followingId-1": true,
"followingId-2": true,
.
.
},
"followers": {
"followerId-1": true,
"followerId-2": true,
.
.
},
"feed": {
"postId-1": true,
"postId-2": true,
.
.
}
},
"userId-2": {},
"userId-3": {},
.
.
}
当有人发帖时,我也会将该帖子的关键字添加到该用户的feed
粉丝中。
问题在于,当有人开始关注其他人时,他们没有开始看到他们的旧帖子。您是否知道如何在跟踪某人后立即更新用户时间表?
注意: 这不是基于代码的问题,它实际上是一个设计问题。我只想了解Firebase数据库中用户Feed的一般概念。
修改
我正在为我的服务器使用Java和Spring Framework。
用户Feed是按时间排序的。因此,我们需要在添加和删除对帖子的引用时保留此顺序。
谢谢。
答案 0 :(得分:2)
如果您想在开始关注用户时显示用户的历史帖子,那么您需要在那时阅读这些帖子。由于您的问题不包含有关如何存储帖子的信息,因此不幸的是,我可以做出具体的答案。
但是,如果我们假设每个用户也有自己的帖子列表,它可能类似于(在JavaScript中):
function follow(uid) {
var postsRef = ref.child('users').child(uid).child('posts');
var feedRef = ref.child('users').child(auth.uid).child('feed');
postsRef.on('child_added', function(snapshot) {
feedRef.child(snapshot.key).set(true);
});
}