Как мне структурировать сообщения Geofire в базе данных Firebase?

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

мой

Locations{
    indexOn: "g"
}

другие / что я предполагаю, что это должно быть

Locations{
        ".indexOn": "g"
    }

Я ничего об этом не думал, пока не наткнулся на ошибку, похожую на эту, с ".indexOn". Я попытался добавить ".indexOn", но я получил ошибку, что ни один ключ не может иметь символ .(вместе с несколькими другими персонажами, которые не допускаются), поэтому я вставил его без . вот так:

Locations{ (specific id){ g: "345jh3i5jh" l{ 0: 37 1: -120 } indexOn: "g" user: "0987435098723098Gjhf90" } }

Так что, похоже, работает как observeEventType иногда возвращает правильный результат, но он все еще также дает мне ошибку, которую мне нужно поместить ".indexOn" в базу данных. Как мне это сделать?


Буду признателен за любую помощь и явные примеры, поскольку со всем, вероятно, проблем больше, чем я рассмотрел. Делать это в кратчайшие сроки и спасибо за прочитанное!

1 ответ

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

Индексы определяются путем добавления их в правила базы данных Firebase в консоли Firebase> База данных> Правила. Не пытайтесь добавить их в вашу фактическую базу данных, так как:

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

См. Документацию Firebase по добавлению индексов для получения дополнительной информации.

Другие вопросы по тегам