Я работал над приложением, которое будет использовать местоположение пользователя и выполнять веб-запрос с их почтовым индексом в URL-адресе. Это было довольно быстро, занимая обычно 1-3 секунды. Я собирался опубликовать приложение, но прочитал условия использования и не смог использовать их сервис с моим приложением. С тех пор я загрузил таблицу индексов размером в 77 тыс. Zip-кодов, преобразовал ее в JSON и загрузил ее в Firebase. В настоящее время я запрашиваю Firebase в своем приложении для поиска почтового индекса, но сейчас он занимает около 10-15 секунд. Мой код выглядит следующим образом:Самый эффективный способ запроса Firebase iOS
func firebaseSearch(zipCode: String) {
let conditionRef = FIRDatabase.database().reference().child("locations")
let query = conditionRef.queryOrderedByChild("zip").queryEqualToValue(zipCode)
query.observeEventType(.Value, withBlock: { snapshot in
for child in snapshot.children {
print(child.value["state"])
}
})
}
Мой firebase структурирована следующим образом:
- "места"
- "1"
- почтовый индекс: "12345"
- состояние: "XX"
- "2"
- молния: "12345"
- состояние: "XX"
- "1"
Я попытался думать о том, как я могу структурировать Firebase быть более эффективными, например, состоянием, являющимся родителем, с дочерними элементами внутри. Я хотел загрузить все записи в виде почтовых индексов; однако в моей таблице слишком много дубликатов кодов, и я знаю, что firebase не позволяет дублировать. Есть ли более эффективный способ запроса на firebase? Что делать, если я сделал номер записи (начиная с 1 до 77k), начиная с первого почтового индекса, затем я запросил значение +/- из почтового индекса, а затем отфильтровал эти результаты? Мой единственный страх в том, что, глядя на последний почтовый индекс, номер записи составляет около 20 тыс. От фактического почтового индекса. Я ценю любые советы/предложения, спасибо!
Благодарим за отзыв! Как использовать разбивку на страницы? Я думал, что limitToLast использовал только последние 25 записей? Но я новичок в firebase, поэтому я не уверен. Еще раз спасибо! – JD2017
Я бы порекомендовал вам посмотреть это сообщение для разбивки на страницы (http://stackoverflow.com/questions/37144030/how-do-you-properly-order-data-from-firebase-chronological), поскольку это помогло мне, а также , – waseefakhtar