Я новичок в программировании и просто пытаюсь создать приложение, в котором каждый может публиковать новые события. Итак, я уже создал заметки типа «пользователь» и «события». Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как избежать дублирования, например, если два пользователя публикуют одно и то же событие.
Я не хочу показывать их дважды в своем RecyclerView.
Итак, я должен сравнить дату, местоположение и описание из-за большого количества запросов. Является ли Firebase Realtimedatabase правильным «инструментом»? Или я должен использовать другое программное обеспечение.
------/Events
---------/LbwXYVICCl9xd5m..
--------------datum: 10.04.2019
--------------userid: OncDIQis...
--------------location:New York
--------------description:Coldplay
База данных 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
В приведенной выше структуре, если другой пользователь попытается создать эквивалентное событие, он получит тот же ключ.