Библиотека Firebase js извлекает пустые данные из непустой базы данных - PullRequest
0 голосов
/ 28 апреля 2018

шагов для воспроизведения:

Инициализируйте вашу базу данных Firebase:

{
  "restaurants" : [ {
    "address" : "via Rettifilo, 34 Castelguidone CH Italy",
    "title" : "Dama & Dama"
  }, {
    "address" : "Corso Umberto I, 3 Castelguidone CH Italy",
    "title" : "Bar sabatino"
  } ]
}

Проверьте правила чтения базы данных для чтения / записи:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

Выполните этот код js:

firebase.inizializeApp(yourJsonConfig)
\*code*\
firebase.database().ref().once('value').then(function(snapshot){ 
    console.log(snapshot.val()); \\ this will print  Array(0)
})

Ожидаемое поведение: журналы консоли "{'restaurants' ........}"

Фактическое поведение: журналы консоли "Array(0)" Т.е. НЕТ ДАННЫХ!

Я использую библиотеку firebase js (версия 4.13.1). Где я не прав?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Аргумент snapshot, который передается вашему обратному вызову, является объектом типа DataSnapshot . Не следует предполагать, что строка форматирования JSON объекта DataSnapshot содержит только данные из этого расположения в базе данных. Как вы можете видеть из документации API, в DataSnapshot есть много функциональных методов.

Что вы должны сделать, это вызвать val () для этого снимка, чтобы извлечь из него значение JavaScript. Прочитайте документы API, чтобы лучше понять, что может содержать этот объект.

0 голосов
/ 29 апреля 2018

Вам необходимо использовать метод val () для возврата ваших данных.

 firebase.database().ref().once('value').then(function(snapshot){ 
    console.log(snapshot.val());
})

Редактировать : Тогда ваша проблема существует в другом фрагменте кода, который вы не показали.

Проверьте этот пример: http://jsfiddle.net/zgfr91yd/

В журнале консоли:

enter image description here

И посмотрите мои данные:

enter image description here

Вам нужен уникальный ключ для родителей каждого ресторана. Для этого вы можете использовать функцию «push» в Firebase.

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