在Firebase数据库

时间:2017-03-23 10:16:30

标签: android firebase database-design firebase-realtime-database

我开发的应用程序与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;
    }
}
  1. 如果我包含&#34;用户名&#34;在Post Object中,我可以同步显示每个帖子的用户名,但是很难显示最新更新的&#34;用户名&#34;一直以来。

    如果一个用户的帖子超过1000,我应该在更改用户名的同时更新所有帖子吗?

  2. 如果我排除&#34;用户名&#34;在Post对象中,我可以加载更新的&#34;用户名&#34;每次加载Post后都会异步。

  3. 或者第一次只显示旧用户名,并检查每次加载帖子时是否更改,并异步更新。

  4. 哪种方法最有效,最合适?

0 个答案:

没有答案