加入Firebase Android

时间:2017-12-20 17:12:56

标签: java android firebase

我在Firebase中有两个表,用户和评论。 我在Activity中使用FirebaseRecyclerAdapter显示评论,当我显示它时,我想获得发布此评论的用户的用户名

 {
  "comments" : {
    "-L0hqpk1BGX36jNvaA-h" : {
      "comment" : "Hello"
      "date_post" : 1513671580718,
      "user_id" : "ksRMjacofzZDX1ir0m9iB2HWUhV2"
      }
  },
  "users" : {
      "ksRMjacofzZDX1ir0m9iB2HWUhV2" : {
        "username" : "user1"
      }
  }
 }

使用FirebaseRecyclerView时是否有获取此人用户名的好方法?

谢谢。

2 个答案:

答案 0 :(得分:3)

我建议您也使用评论表添加用户名,然后我猜它会很容易查询并显示它。现在我之所以这么说,Firebase与SQL不同,非规范化是正常的,那就是firebase。

答案 1 :(得分:1)

达斯是对的。您应该将用户名添加到评论表中。这样,您无需下载用户的个人资料即可获取用户名。但是,如果您确实希望通过他们的个人资料获取用户名,那么您已经拥有了自己的ID,这很容易。就这样做:

//Get the user id when you retrieve the comment

FirebaseDatabase.getInstance.getReference.child("users").child(userid).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
            User user = dataSnapshot.getValue(User.class);

            String username = user.getUsername();

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });