Мне нужно прочитать значение ответа snapshot.val(). Структура моей базы данных Firebase Realtime выглядит следующим образом:
example-default-rtdb
+ 1234567
++ abcdefg
+++ foo: "bar"
База данных:
const db = firebase.database()
const ref = db.ref('1234567/')
ref.limitToLast(1).on(
'value',
snapshot => {
const response = snapshot.val()
const message = response.foo
},
errorObject => {
console.info("error")
}
)
response.foo возвращает неопределенный вместо бар. Я пробовал JSON.parse и JSON.stringify - все они возвращают значение undefined.
Это вывод, если я использую константное сообщение = JSON.stringify (ответ, ноль, ' ')
{
"123456": {
"foo": "bar"
}
}
Как получить доступ к значению фу?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Похоже, вы не знаете abcdefg, и в этом случае вы можете использовать forEach для перебора всех дочерних узлов snapshot:
const db = firebase.database()
const ref = db.ref('1234567/')
ref.limitToLast(1).on(
'value',
snapshot => {
snapshot.forEach((child) => {
console.info(child.key, child.val(), child.val().foo)
}
},
errorObject => {
console.info("error")
}
)