Firebase не распознает ключ строки для установки значения - PullRequest
1 голос
/ 03 февраля 2020

У меня есть ListView Activity, загруженный с элементами FirebaseDatabse (пользователи). Как только вы щелкаете по элементу ListView, он передает ключ элемента связанного пользователя (FirebaseDatabase Ha sh) в другое действие, в котором есть кнопка подтверждения. После нажатия кнопки подтверждения следует установить значение подтверждения («Принят») в поле элемента FirebaseDatabase, заданном ключом элемента пользователя.

Проблема заключается в том, что это не так. Я имею в виду, что если я использую CURRENT userId ha sh, он отлично устанавливает «Accepted» в поле userId в FirebaseDatabase, но если я использую ключ другого user-user, он этого не делает. Может ли кто-нибудь сказать мне, почему, пожалуйста?

Это часть действия подтверждения, когда нажимается кнопка подтверждения:

 riderKey = intentGet.getStringExtra("riderKey");

        Log.i("KeySetRider", riderKey);
        Log.i("KeySetUser", MainActivity.userId);

        FirebaseDatabase.getInstance().getReference().child("users").child(String.valueOf(riderKey )).child("Request").setValue("Accepted");
       FirebaseDatabase.getInstance().getReference().child("users").child(String.valueOf(MainActivity.userId )).child("Request").setValue("Accepted");

Вот ключи, которые я получаю в действиях подтверждения:

2020-02-02 22:15:58.268 10620-10620/com.example.uberapp I/KeySetRider: XhNENH3g68SsrtPhmdFmY 
2020-02-02 22:15:58.268 10620-10620/com.example.uberapp I/KeySetUser: klaunWpq4ASLfiduCoU2d 

![enter image description here] 1

![enter image description here] 2

1 Ответ

2 голосов
/ 03 февраля 2020

Извините, я не могу комментировать вопрос, поэтому я должен написать свои комментарии здесь, несмотря на то, что я на самом деле не публикую решение.

Я заметил, что ключи, с которых вы скопировали вывод logcat не совсем совпадает с выводом на скриншотах. Они кажутся усеченными. Есть идеи почему? Если в коде вы пытаетесь использовать правильные константы вместо переменных, это работает? Может возникнуть проблема с тем, как вы получаете / обрабатываете эти идентификаторы.

Альтернативной гипотезой может быть то, что права пользователя не установлены должным образом в базе данных, и, следовательно, пользователю разрешено редактировать только свою запись. Не уверен, что это возможно с вашим приложением, так как вы публикуете только sh эти две записи, и мы не знаем, где они хранятся и какая у вас конфигурация БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...