Сопоставить документы со списком за исключением - PullRequest
0 голосов
/ 24 октября 2019

Я запрашиваю документы в пользовательском Списке с помощью firestore. Но я хочу уточнить, если в этом документе указан текущий идентификатор пользователя, его не следует помещать в список.

Чтобы уточнить: это стопка карточек. Каждая карта имеет возможность пропустить. Если пользователь пропускает его, его идентификатор помещается в поле этой карты с именем «пропущено». Следовательно, этот текущий пользователь не должен видеть эту карту снова, потому что у карты есть поле, в котором говорится, что его идентификатор пропустил ее.

Что-то вроде:

List<CustomCard> cards =
        snapshot.documents.where(/* current ID DOESN'T exists in doc["skipped"], so adds to map*/).map((doc) => CustomCard.fromDocument(doc)).toList();

Вот как ядобавление идентификатора пользователя в поле пропущенной карты:

//On skip button pressed, call:
handleSkip() {
    cardRef.document(projectId).updateData({'skipped.$currentUid': true});
  }

Как можно отменить отображение карты в стеке, если этот текущий идентификатор пользователя пропустил ее?

1 Ответ

0 голосов
/ 24 октября 2019

В Cloud Firestore нет запросов «не равно» или «не содержит». Два возможных обходных пути:

  1. Скрыть карты, которые понравились пользователю в клиенте.
  2. Сохраните список всех карт, которые не понравились пользователю, и затем удалите каждуюкак только пользователь полюбит эту карту.

Учитывая вариант использования, я бы сказал, что # 1 кажется наиболее выполнимым.

Также см .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...