Как мне структурировать сообщения 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 по добавлению индексов для получения дополнительной информации.