Google Firebase и http Post to Lists - PullRequest
       4

Google Firebase и http Post to Lists

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

У меня настроена база данных JSON в Google Firebase, и у меня есть приложение Angular 6, которое пытается разместить объект в этой базе данных. Все работает нормально, за исключением того, что к моему списку добавлено имя alphanumeri c, и я не могу его удалить.

База данных выглядит следующим образом:

{
  "thursdayPanels": {
  "panel": [
    {
      "tagline": "tagline 1",
      "content": "some content 1",
      "id": 1
    },
    {
      "tagline": "tagline 2",
      "content": "some content 2",
      "id": 2
    },
    {
      "tagline": "tagline 3",
      "content": "some content 3"
      "id": 3
    }
  ]
}
}

Функция обновления выглядит следующим образом:

 addPanel(panelInfo){
    return this.http.post(`${this.baseURL}/thursdayCampaign/panel.json`, panelInfo).subscribe((po:Response) => {console.log("po",po)})

где информация о панели - это объект, структурированный подобным образом, который передается в функцию addPanel ():

    this.panelInfo ={
      "week": panel.id,
      "tagline": panel.tagline,
      "content": panel.content,
    }

Когда панель загружается для ее запуска выглядит так (пожалуйста, не обращайте внимания на различия в именах): Google Firebase Realtime Database Я не смог найти документацию базы данных Firebase, которая бы рассказывала мне, почему он это делает или как помешать этому. Он не позволяет функциям * ngFor, которым я передаю эти данные, работать в моем приложении.

Заранее спасибо.

1 Ответ

1 голос
/ 29 апреля 2020

Согласно документации REST API для базы данных реального времени , когда вы делаете POST , это «выталкивает» данные в базу данных так же, как JavaScript * 1005. * pu sh () метод работает. Он всегда генерирует случайный идентификатор и добавляет данные под ним. Если вам не нужно это поведение, вам следует вместо этого создать полный путь к добавляемому узлу и PUT в пути вашего URL.

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

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

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