Подстановочные запросы для документов в подколлекциях Firestore - PullRequest
1 голос
/ 08 февраля 2020

моя база данных Firestore организована следующим образом: (col = collection, do c = document)

-data (col)
  -userid -> random number (doc)
    -clients (col)
      -clientid -> random number (doc)
      -clientid -> random number (doc)
  -userid(doc)
    -clients (col)
      -clientid -> random number (doc) 
      ...

, и мне нужно прочитать все данные в указанном c документе "clientid" просто просит пользователя ввести его случайное число.

Интересно, смогу ли я прочитать эти данные с использованием подстановочного синтаксиса, как в правилах базы данных:

var clientid = "65486649466"
var clientdata = db.collection("data").doc({userid}).collection("clients").doc(clientid);

Или есть другой способ сделать это? Спасибо

1 Ответ

0 голосов
/ 08 февраля 2020

В клиентских запросах Firestore нет подстановочных знаков. Вам необходимо предоставить точные значения для всех идентификаторов коллекции и документов, необходимых для выполнения запроса.

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

const query = db.collectionGroup("clients")
query.get()...

Этот запрос вернет все документы среди всех подколлекций, названных «клиенты». К сожалению, вы не можете фильтровать этот запрос на основе идентификатора документа каждого клиентского документа. Для этого вам также необходимо написать идентификатор документа клиента в виде поля в каждом документе. Предположим, что вы сделали это, и имя поля называется «id»:

const query = db.collectionGroup("clients").where("id", "==", clientid)
query.get()...

. Это даст вам все документы подколлекции «клиентов», где поле «id» равно clientid. * 1012. *

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