Android Firebase: установка значения не работает

Я пытаюсь добавить тестовое значение в базу данных Firebase, используя следующий код:

 FirebaseDatabase database = FirebaseDatabase.getInstance();
 DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
 DatabaseReference usersRef = ref.child("shop").child("Users");
                   
 usersRef.child(user.getUid()).setValue("test");

И база данных выглядит так:

Android Firebase: установка значения не работает

Но, к сожалению, это не работает. Где я не прав? Заранее спасибо.

проверьте свой пользовательский uid.

Nouman Ch 07.04.2018 13:32

Вы аутентифицировали пользователя?

Peter Haddad 07.04.2018 13:33

Отладьте значение user.getUid (). Если все в порядке, добавьте прослушиватель завершения, чтобы проверить ошибку.

ADM 07.04.2018 13:34

@NoumanCh Это нормально

Đặng Tâm 07.04.2018 13:35

@ADM Как добавить слушателя завершения?

Đặng Tâm 07.04.2018 13:35

@PeterHaddad Я пытаюсь разработать реестр. После регистрации я добавлю информацию о пользователях в базу данных, и она не работает. Аутентификация в порядке

Đặng Tâm 07.04.2018 13:37
firebase.com/docs/android/guide/…
ADM 07.04.2018 13:42

Я думаю, вы добавляете значение к НЕ существующему узлу UID .. вам нужно сначала сохранить UID в базе данных firebase

Mohammad 07.04.2018 13:48

@Mohammad узел существует :(

Đặng Tâm 07.04.2018 14:02

возможно, вам нужно изменить правила базы данных на true, если вы еще не аутентифицировали пользователя

Mohammad 07.04.2018 14:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
10
5 151
2

Ответы 2

Используйте приведенный ниже код.

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = ref.child("shop").child("Users");
String userId = mFirebaseDatabase.push().getKey();
usersRef.child(userId).setValue("test");

mFirebaseDatabase неверна. Я думаю, это должны быть пользователи, верно?

Đặng Tâm 07.04.2018 13:53
String userId = mFirebaseDatabase.push().getKey(); У пользователей уже есть отличный UID, который их идентифицирует. Хранение их под этим ключом значительно упрощает поиск информации о каждом пользователе по их UID. С другой стороны, если вы храните их под кнопкой push, вам всегда придется запускать запрос, чтобы найти пользователя.
Frank van Puffelen 07.04.2018 17:09

Зайдите в консоль firebase на firebase.google.com Затем нажмите на правила, а затем установите такие правила ты можешь сделать это легко

".read": "auth!=null",
".write": "auth!=null"

а затем нажмите «Опубликовать» и попробуйте еще раз, он будет работать на 100%.

убедитесь, что ваш код также корректен в вашей студии Android.

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

Похожие вопросы

Как сопоставить заданную строку в файле документа и скопировать все абзацы, содержащие данную строку, в другой файл документа
Можно ли использовать setOnMarkerClickListener для получения разных результатов для разных маркеров, созданных в цикле for?
Исключение в потоке "main" java.lang.NullPointerException com.javainuse.controllers.ConsumerControllerClient.getEmployee (ConsumerControllerClient)
Вызов USSD из фона, получение ответа и дальнейшая отправка запроса
Раздельные методы для матрицы и перестановки диагоналей
OpenGL ES Android - Текстура не загружена (отображается черным)
Ошибка при запуске приложения Spring с использованием сервера WildFly - Ошибка сохраняемости Mysql - Источник данных Mysql не найден
SQLite / Java: включить кэширование памяти, максимально редуцировать ввод-вывод
Строка состояния становится черной при отображении диалогового окна нижнего листа
Я пытаюсь использовать токенизатор, чтобы указать имя и фамилию