Я сделал приложение чата только для себя и моего друга.
Когда я отправляю им сообщения, я хочу сохранить их 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"
Не уверен насчет вывода 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
}
});
Да, я тебя понимаю. Вы можете попробовать использовать коды, которые я только что вставил в ответ. Я знаю, вы можете получить только ваш идентификатор пользователя с этим :) Но, с моим, он вернет желаемый uid из вывода firebase.
Спасибо, я смогу получить это. Подскажите, как поставить friend_user_id? Потому что в вышеупомянутом вопросе структура еще не создана. Вы видите, как я хочу, чтобы это выглядело.
Используйте эта ссылка для создания узлов и т.д. Я думал, что вы уже создали текущую структуру, однако я бы избегал такой структуры и просто использовал Messages в качестве корневого узла, а затем идентификатор пользователя с информацией и содержимым. (как вы можете видеть на предоставленной картинке по ссылке)
Спасибо за помощь ! Оно работает. Я поддержал ваш ответ.
Вы также можете принять ответ, чтобы решить эту проблему для будущих поисков. Рад помочь :) удачного кодирования.
@Monsen Я хочу получить удостоверение личности моего друга. В действии я могу получить только
currendUserId = FirebaseAuth.getCurrentUser.getUid();И я обновил вопрос с деталями верный.