我开发的应用程序与Instagram非常相似。
在Instagram上,用户可以随时更改用户名。如果您更改了用户名,您的帖子也会显示更新后的用户名。
如何在firebase数据库环境中实现此功能?
例如,我的VO如下。
@IgnoreExtraProperties
public class Post {
String uid;
String username;
String content;
int likesCount = 0;
Map<String, Boolean> likes = new HashMap<>();
Map<String, Boolean> hashtags = new HashMap<>();
public Post() {
// Default constructor required for calls to DataSnapshot.getValue(Post.class)
}
public Post(String uid, String username, String content) {
this.uid = uid;
this.username = username;
this.content = content;
}
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("uid", uid);
result.put("username", username);
result.put("content", content);
result.put("likesCount", likesCount);
result.put("likes", likes);
result.put("hashtags", hashtags);
return result;
}
}
如果我包含&#34;用户名&#34;在Post Object中,我可以同步显示每个帖子的用户名,但是很难显示最新更新的&#34;用户名&#34;一直以来。
如果一个用户的帖子超过1000,我应该在更改用户名的同时更新所有帖子吗?
如果我排除&#34;用户名&#34;在Post对象中,我可以加载更新的&#34;用户名&#34;每次加载Post后都会异步。
或者第一次只显示旧用户名,并检查每次加载帖子时是否更改,并异步更新。
哪种方法最有效,最合适?