#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()
уже возвращает строку.