Как найти все записи, где дата позже, чем?

# #firebase #go #firebase-realtime-database

#firebase #Вперед #firebase-база данных в реальном времени

Вопрос:

У меня есть база данных firebase, подобная приведенной ниже:

введите описание изображения здесь

и я хотел бы выбрать все события, которые происходят после определенной даты. Я попытался сделать это с помощью следующего кода:

 events := []data.EventData{}

if err := ref.Child("date").OrderByValue().StartAt(time.Now()).Get(c, events); err != nil {
    fmt.Println("Error selecing upcoming events")
    fmt.Println("Error:", err)
    response.Message = "Problem getting upcoming events"
    c.JSON(http.StatusInternalServerError, response)
    return
}
  

Но он продолжает выдавать ошибку:

Индекс не определен, добавьте «.indexOn»: «.value», для пути «/ Событие / дата», к правилам

Что это значит и как мне выбрать нужные мне записи? Я на правильном пути и мне просто нужно устранить эту ошибку или мне следует использовать другой подход?

Ответ №1:

Firebase просит вас добавить индекс в date для повышения производительности запроса. AFAIK, вы можете получить нужные вам данные без добавления какого-либо индекса. Но это будет довольно медленно по мере роста ваших event данных. проверьте ссылку для справки:https://firebase.google.com/docs/database/security/indexing-data

Комментарии:

1. Но это возвращает ошибку, когда я пытаюсь получить свои записи, так что это означает, что это больше, чем предложение, верно?

2. есть ли какие-либо данные в вашем events фрагменте? @AbeMiessler

3. Нет, это пустое. Может ли быть проблема с моим запросом, из-за которой он не возвращает результатов? Похоже, вы почти уверены, что у этого должны быть результаты, даже если это выдает ошибку?

4. @AbeMiessler, похоже, firebase не просто предлагает, индекс необходим. firebase.google.com/docs/firestore/query-data/indexing . код здесь github.com/firebase/firebase-admin-go/blob/master/db / … .