Как получить только идентификаторы документов [Firebase-Flutter] - PullRequest
0 голосов
/ 13 июля 2020

В моей базе данных firebase у меня есть пользователи, и у каждого пользователя есть несколько магазинов, из которых он заказал, и в каждом магазине есть несколько заказов. Чтобы получить все заказы для указанного c магазина, я пишу следующий запрос, и он отлично работает.

 QuerySnapshot result = await Firestore.instance
    .collection('users')
    .document(userID)
    .collection('Stores').
    document(storeID).getDocuments();

Однако мне это не нужно. Мне просто нужны магазины, в которых заказывал пользователь. Другими словами, мне нужен список идентификаторов магазинов для указанного c пользователя.

Вот мой код, но он не работает.

QuerySnapshot result = await Firestore.instance
    .collection('users')
    .document(userID)
    .collection('Stores').getDocuments();

Мне просто нужны идентификаторы

1 Ответ

0 голосов
/ 13 июля 2020

С веб-клиентами и мобильными клиентами невозможно получить только идентификаторы без полного набора документов и их данных. Если вам нужен список всех идентификаторов для всех документов в коллекции или субколлекции, вам придется запросить эту коллекцию, как вы сейчас показываете во втором примере. Вы можете легко извлечь идентификаторы из возвращенных документов в QuerySnapshot. Но вы по-прежнему оплачиваете стоимость чтения документа для каждого документа в коллекции и ждете, пока все их содержимое будет передано.

При желании вы можете создать собственный API конечной точки серверной части для используйте серверный SDK для запроса только идентификаторов и возврата только идентификаторов, но вы по-прежнему платите документ, прочитанный за документ.

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