Firebase:如何获取其他用户的uid?

时间:2018-09-22 09:44:17

标签: android firebase firebase-realtime-database

我已经为我和我的朋友制作了一个聊天应用程序。

当我向他们发送消息时,我想存储他们的Uid

我该怎么做?还要提及是否需要重建整个结构。

我想到了String[] uidList = DatabaseReference.child("Users").getKey();

消息尚未创建。我想用 friend_user_id 创建它们,目前无法检索。

下面是我希望我的Firebase数据库结构如下所示:

app-id:

    Users:
        my_user_id:
            name:"Me"
            last_seen:"MyLastSeenTimeValue"

        friend_user_id:
            name:"Friend"
            last_seen:"FriendLastSeenTimeValue"

    Messages:

        my_user_id:
            friend_user_id:(How to retrieve this ?)
                random_msg_id_1:
                    text:"Hi"
                    msg_type:"text"
                    time:"msgTime"

                random_msg_id_2:
                    text:"Hello"
                    msg_type:"text"
                    time:"msgTime"

        friend_user_id:(How to retrieve this ?)
            my_user_id:
                random_msg_id_1:
                    text:"Hi"
                    msg_type:"text"
                    time:"msgTime"

                random_msg_id_2:
                    text:"Hello"
                    msg_type:"text"
                    time:"msgTime"

1 个答案:

答案 0 :(得分:1)

不确定Json的输出,但可以猜测,它应该类似于以下代码:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference();
       myRef.child("Messages").child("my_user_id").addValueEventListener(new ValueEventListener() {
                     @Override
                     public void onDataChange(DataSnapshot dataSnapshot) {

                        for(DataSnapshot item_snapshot:dataSnapshot.getChildren()) {

                        // get the data here and loop through the friend_user_id to get the nodes like following
                        Log.d("User id ", item_snapshot.toString());

                    }
                  }

            @Override
             public void onCancelled(DatabaseError databaseError) {
                     // handle error
              }
});