Firebase: как получить uid другого пользователя?

Я сделал приложение чата только для себя и моего друга.

Когда я отправляю им сообщения, я хочу сохранить их 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"
0
0
907
1

Ответы 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
              }
});

@Monsen Я хочу получить удостоверение личности моего друга. В действии я могу получить только currendUserId = FirebaseAuth.getCurrentUser.getUid(); И я обновил вопрос с деталями верный.

Detained Developer 22.09.2018 12:00

Да, я тебя понимаю. Вы можете попробовать использовать коды, которые я только что вставил в ответ. Я знаю, вы можете получить только ваш идентификатор пользователя с этим :) Но, с моим, он вернет желаемый uid из вывода firebase.

ʍѳђઽ૯ท 22.09.2018 12:02

Спасибо, я смогу получить это. Подскажите, как поставить friend_user_id? Потому что в вышеупомянутом вопросе структура еще не создана. Вы видите, как я хочу, чтобы это выглядело.

Detained Developer 22.09.2018 12:12

Используйте эта ссылка для создания узлов и т.д. Я думал, что вы уже создали текущую структуру, однако я бы избегал такой структуры и просто использовал Messages в качестве корневого узла, а затем идентификатор пользователя с информацией и содержимым. (как вы можете видеть на предоставленной картинке по ссылке)

ʍѳђઽ૯ท 22.09.2018 12:19

Спасибо за помощь ! Оно работает. Я поддержал ваш ответ.

Detained Developer 22.09.2018 12:36

Вы также можете принять ответ, чтобы решить эту проблему для будущих поисков. Рад помочь :) удачного кодирования.

ʍѳђઽ૯ท 22.09.2018 12:40

Другие вопросы по теме