Flutter Profile Matching App - Моделирование облачных хранилищ данных | Как сделать запрос, чтобы избежать ненужных прочтений для уже проведенных UID - PullRequest
0 голосов
/ 21 марта 2020

Я старался изо всех сил с функцией поиска, но не получил результатов, которые искал.

В данный момент я пытаюсь воспроизвести функцию считывания профилей в стопке карт. Профили загружаются через бэкэнд Firebase Firestore. Проблема в том, что из-за запроса geoFireStore я получаю при каждой загрузке в пределах указанного c радиуса целую пачку документов, и я хотел бы уменьшить объем чтения непосредственно в запросе.

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

Firestore JSON структура на данный момент:

  • Пользователи (коллекция)
    • UID [документы]
      • имя
      • active
      • match {map}

Если карта соответствия не содержит собственный UID ( если существует значение null), тогда читайте в запросе, иначе, когда собственный UID существует в другом профиле пользователя при сопоставлении карты (логическое значение: true или false для понравившегося или не понравившегося), тогда не будет отображаться как результат запроса.

My Поток построен следующим образом:

return geo
    .collection(
        collectionRef:
            friendrCollection.where("active", isEqualTo: true).where("match.$uid", isNull: true))
    .within(
        center: geoFirePoint,
        radius: suchRadius,
        field: 'position',
        strictMode: false)
    .map(_friendrsGPSListFromSnapshot);

}

Я работаю над этим уже 3 недели и не получаю желаемых результатов: D

- Должен ли я остаться с камином или лучше в режиме реального времени базы данных? -Как мне нужно структурировать данные, чтобы получить рабочий запрос «кроме»?

Сейчас это выглядит так:

Коллекция: Пользователи -> Документы: UID -> Соответствовать { ownUID}

Заранее спасибо

Андреас:)

1 Ответ

0 голосов
/ 11 апреля 2020

Мне все еще не удалось найти правильное решение для уменьшения количества ненужных чтений профиля в запросе пожарного депо.

Кто-нибудь имел идею обработать эту часть?

Единственный способ, который я нашел, - это поиск существующих совпадений на стороне клиента (дополнительная коллекция Firestore), но это означает, что мне всегда нужно загружать весь комплект профилей и выбрасывать их потом: (

Спасибо!

Андреас

...