Назовите Firebase дочерний как массив последовательностей - PullRequest
1 голос
/ 22 сентября 2019

enter image description here

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

Ниже приведен код, которым я записываю данные в Firebase, num - это значение, увеличенное в каждом циклеНо, как показано на прилагаемой картинке, имя ребенка не добавляется в качестве порядкового номера.Другой вопрос: я не хочу, чтобы уникальный ключ находился внутри дочернего элемента 1, всего шесть различных ключей внутри дочернего элемента - все в порядке.

Любые предложения будут оценены.

firebase.database().ref('testdata/User1').child(num).push({

 x: posX,

  y: posY,

MaxSpeed: maxSpeed, 

 steps: counter,

 time: Timeperiod /1000,

  speed: SpeedRecord,

  });

1 Ответ

0 голосов
/ 22 сентября 2019

Если вы не хотите использовать push-идентификатор внутри своих псевдо-цифровых клавиш, позвоните set вместо push.

Итак:

firebase.database().ref('testdata/User1').child(num).set({
  x: posX,
  y: posY,
  MaxSpeed: maxSpeed, 
  steps: counter,
  time: Timeperiod /1000,
  speed: SpeedRecord,
});

Похоже, у вас другие проблемы(невозможно быть уверенным, поскольку вы не включили код для приращения) из-за того, что num является строкой.Если это действительно так, увеличьте его следующим образом:

num = String(parseInt(num) + 1);

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

Что-то простое:

num = String(parseInt(num) + 1).padLeft(5, "0");

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

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