К сожалению, в Firebase нет способа достичь этого, используя только один запрос.Таким образом, в вашем случае вам следует запросить базу данных дважды, один раз, чтобы получить список кафе, и второй, чтобы проверить, является ли один из этих объектов кафе любимым или нет.Однако есть обходной путь, в котором вы можете создать новый раздел в вашем пользовательском объекте с именем favoriteCafe
, в который вы можете добавить все любимые кафе пользователя, но это подразумевает дублирование данных.Эта практика называется denormalization
и является обычной практикой, когда дело доходит до Firebase.Для лучшего понимания, я рекомендую вам посмотреть это видео, Денормализация нормальная с базой данных Firebase .Так что в этом случае, если вы хотите узнать любимые кафе пользователя, вы можете использовать один запрос и присоединить слушателя к этому новому созданному местоположению.
Кроме того, когда вы дублируете данные, есть одна вещь, которая требуетиметь в виду.Точно так же, как вы добавляете данные, вы должны поддерживать их.Другими словами, если вы хотите обновить / обнаружить элемент, вы должны делать это в каждом месте, где он существует.