Запрос firebase без дублирования

Я новичок в программировании и просто пытаюсь создать приложение, в котором каждый может публиковать новые события. Итак, я уже создал заметки типа «пользователь» и «события». Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как избежать дублирования, например, если два пользователя публикуют одно и то же событие.

Я не хочу показывать их дважды в своем RecyclerView.

Итак, я должен сравнить дату, местоположение и описание из-за большого количества запросов. Является ли Firebase Realtimedatabase правильным «инструментом»? Или я должен использовать другое программное обеспечение.

------/Events
---------/LbwXYVICCl9xd5m..
--------------datum: 10.04.2019
--------------userid: OncDIQis...
--------------location:New York
--------------description:Coldplay
0
0
37
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

База данных Firebase Real-time — это правильный инструмент для вас, поскольку она обновляет базу данных в режиме реального времени. Во время извлечения данных из базы данных FireBase вы можете проверить, присутствуют ли они уже в вашей локальной базе данных (где вы собираете данные, полученные из базы данных Firebase) или нет.

Я надеюсь, что это поможет вам.

Ответ принят как подходящий

Кажется, вы определяете два события как одинаковые, основываясь на том, что некоторые из их свойств имеют одинаковое значение. В таком сценарии я бы использовал эти комбинированные свойства в качестве ключа события.

Итак, если вы говорите, что два события одинаковы, если они имеют одинаковую дату, место и описание, то вы можете создать уникальный ключ этого события как ${date}_${location}_${description}. Например:

20190410_New York_Coldplay

Я поместил дату в более удобный для поиска формат, который также фильтрует .s (поскольку они не разрешены в ключах. Теперь вы можете сохранить событие под этим ключом:

Events
  20190410_New York_Coldplay
    datum: 10.04.2019
    userid: OncDIQis...
    location:New York
    description:Coldplay

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

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