Моя идея состоит в том, чтобы создать похожую и непохожую систему для постов (пользователю может нравиться и не нравиться пост) и показать список пользователей во фрагменте, упорядоченный таким образом: топ-пользователь - тот, для которого наиболее многочисленные лайки.
В моей базе данных Firebase Firestore:
У меня есть коллекция сообщений. Каждый документ (который является публикацией) содержит идентификатор пользователя, который его создал, и счетчик лайков (я называю это "A").
У меня есть другая коллекция, пользователи. Каждый документ (который является пользователем) содержит счетчик (я называю его «B»), который подсчитывает количество лайков, всех сообщений вместе взятых.
На данный момент я использую " B ", чтобы заказать пользователей в списке пользователей, который я описал выше. Я использую «B» следующим образом: return FirebaseFirestore.getInstance().collection("users").orderBy("likes", Query.Direction.DESCENDING);
.
Однако из-за некоторых технических фактов, связанных с правилами безопасности Firebase, и для упрощения структуры базы данных я бы хотел использовать только «A», и удалить "B". Точнее, я бы хотел получить всех пользователей и упорядочить их по «А». Однако счетчик «А» определен в документах коллекции сообщений, тогда как счетчик «В» определен в документах коллекции пользователей: это облегчает использование.
Так что мой Вопрос в том, что для каждого пользователя мне нужно было бы получить все их сообщения, затем суммировать их счетчик «А», затем получить всех пользователей, затем упорядочить их в соответствии с этой суммой. Однако я хотел бы знать: возможно ли это сделать с помощью Firebase Firestore Android API? (что-то вроде инструкции, приведенной ранее) Другими словами: Как заказать документы из коллекции Согласно области документов другой коллекции? Но обратите внимание, что на самом деле это сложнее, так как я должен суммировать счетчик "A" каждого сообщения, созданного пользователем.