React Native Получение определенных дочерних значений из дерева JSON с помощью Firebase - PullRequest
0 голосов
/ 17 мая 2018

Итак, я использую React Native и firebase, и у меня есть дерево JSON в firebase, которое структурировано так:

{"Message"
  {"-LCi0UViBvOn4eh9cqzW":
    {"contents":"hello",
     "timestamp":1526559275118}
  }
}

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

const firebaseApp = firebase.initializeApp(firebaseConfig);
let db = firebaseApp.database();
let ref = db.ref("/message");

Попытка чтения:

 componentDidMount() {
     ref.on("value", function(snapshot) {
      var messageText = JSON.stringify(snapshot.val());
      console.log(messageText);
      var parsedMessage = JSON.parse(messageText);
      console.log(parsedMessage.contents);
     });
  }

Первый файл console.log дает мне следующие результаты:

{"-LCi0UViBvOn4eh9cqzW":{"contents":"hello","timestamp":1526559275118}}

Но следующий файл console.log, в котором я пытаюсь прочитать конкретные данные из анализируемого объекта, всегда выдает undefined.

Что я делаю неправильно, что не позволяет мне получать эти конкретные данные из моего дерева JSON

1 Ответ

0 голосов
/ 17 мая 2018

Когда вы выполняете свой второй JSON.parse, а затем console.log с parsedMessage.contents, он фактически вложен в ключ "-LCi0UViBvOn4eh9cqzW", поэтому вы должны сделать console.log(parsedMessage["-LCi0UViBvOn4eh9cqzW"].contents), так как ключ содержимого находится в пределах значения корневого элемента .

...