NullPointerException при записи в базу данных Firebase - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь добавить элемент к пользователю в моей базе данных Firebase, но получаю исключение NullPointerException каждый раз, когда пытаюсь получить доступ к месту, в которое я хочу записать данные. Это местоположение еще не существует (потому что мне нужно сначала записать в него данные); однако, это не было проблемой при добавлении раздела «userID» и добавлении информации под ним, например:

database = FirebaseDatabase.getInstance();
userReference = database.getReference("accounts");
DatabaseReference currentUserDB = userReference.child(user.getUid());

currentUserDB.child("name").setValue(name);

В приведенном выше разделе кода добавляется ключ с идентификатором пользователя, а затем добавляется имя пользователя внутри него. Это похоже на то, что я хочу сделать дальше.

Что я хотел бы сделать, это добавить раздел под названием «item», а внутри него добавить «first» с именем значения. Как это this.

Там, где ключи «item» и «first» не существуют, пока пользователь не нажмет кнопку для запуска этого кода. В этом коде также должен работать элемент "second" и т. Д.

database = FirebaseDatabase.getInstance();
DatabaseReference dbR = database.getReference("accounts").child(uid);
reference = dbR.child("item");

DatabaseReference databaseReference = reference.child("test");

databaseReference.child("name").setValue(name);

Я получаю исключение NullPointerException в этой строке:

DatabaseReference databaseReference = reference.child("test");

и я не уверен почему.

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

Любая помощь приветствуется. Мои извинения, если это дубликат. Ура

Редактировать: я знаю, что такое исключение NullPointerException, я просто не знаю, почему я получаю его в этом случае. Два набора кода очень похожи, и я не уверен, почему второй набор кодов дает мне ошибку.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Вы должны написать свой код так:

DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
    reference.child("accounts")
            .child("test")
            .child("item")
            .child("first")
            .child("name")
            .setValue(name);
0 голосов
/ 10 января 2019

Если возможно, поместите ваш код здесь, это поможет.

Я думаю, что если "item" и "first" не существуют, вы не можете использовать их как ссылку, потому что там нет узла.

Сначала вам нужно использовать reference = dbR.setValue("item"), а затем вы можете использовать как ref.

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