Добавление объекта Uri в команду .child()

#android #firebase-realtime-database #runtime-error

#Android #firebase-база данных в реальном времени #время выполнения — ошибка

Вопрос:

я пытаюсь переопределить объект в моей базе данных реального времени, выполнив эту команду:

 FirebaseDatabase.getInstance().getReference().child("User").child(user.getUid().toString()).setValue(user);
  

(user) — это обновленный пользователь, а user.getUid() выдает мне uid этого объекта в базе данных, однако в logcat я вижу, что эта команда выдает мне URI, который выглядит следующим образом:

 Log.w("THE URI IS= ",FirebaseDatabase.getInstance().getReference().child("User").child(user.getUid().toString()) "");
  

РЕЗУЛЬТАТ LOGCAT:

С URI =: https://mydatabase.firebase/User/nfKQA6TwsQNTyYUbxrmF08U77Pq2

мне нужен только nfKQA6TwsQNTyYUbxrmF08U77Pq2, и если я помещу user.getUid() alone в logcat, он покажет, что я хочу без uri.

моя БД:

введите описание изображения здесь

стоит упомянуть, что если я продолжу выполнять команду, она выдает очень длинную ошибку AndroidRuntime:

в com.google.firebase.database.core.utilities.encoding.CustomClassMapper.access$ 200(CustomClassMapper.java:47)

Комментарии:

1. Трудно понять, что вы пытаетесь сделать. Я попробовал это сделать ниже. Если это не то, что вы ищете, отредактируйте свой вопрос, чтобы более четко описать, что вы хотите получить в качестве вывода из кода. Если вам нужна помощь с сообщением об ошибке, отредактируйте свой вопрос, чтобы включить точное сообщение об ошибке и его трассировку стека.

Ответ №1:

Если вы хотите зарегистрировать UID пользователя, вы просто сделаете:

 Log.w("THE URI IS= " user.getUid());
  

Обратите внимание, что здесь нет необходимости вызывать toString() , поскольку getUid() уже возвращает строку.