Пожарная служба Flutter Cloud, в которой оговорка - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь получить некоторые списки из облачного пожарного хранилища с этим кодом

final User user = UserUtils.currentUser(context);

final List<String> memberLists = user.memberLists.toList();
final List<String> ownedLists = user.ownedLists.toList();
final List<String> visibleListsIds = memberLists + ownedLists;

final Query query = (sharedCollection.where(FIELD_LIST_ID, whereIn: visibleListsIds));

log.d("queryPath: ${query.reference().path}");
log.d("buildArguments: ${query.buildArguments()}");

return query.snapshots().map((QuerySnapshot querySnapshot) {
      return querySnapshot.documents
          .map(
            (document) {
              log.d("document: ${document.documentID}");
              return _getSerializers()
                  .deserializeWith(WishList.serializer, document.data);
            },
          )
          .where((value) => value != null)
          .toList();
    });

Когда я это делаю, я не получаю никаких журналов с «document: ...», потому что очевидно, что запрос не получает документы. Вот buildArguments запроса:
buildArguments: {where: [[listId, in, [IIAY56KF0mSCx1WwCXaV]]], orderBy: [], path: WISHLISTS}
Примечание: Wishlists - это правильный путь, а listId также правильный.

Если я изменю строку запроса на: final Query query = sharedCollection;, она просто выплевывает все списки, поэтому должна работать теоретически. Я думаю, что есть проблема с оператором whereIn.
Кто-нибудь знает, почему это не работает? Я рад за любую помощь.

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