Можно ли создать запрос, который извлекает все эти вложенные коллекции, вложенные в несуществующий документ.
Запросы в Firestore являются мелкими, что означает, что они получают только элементы из коллекции, для которой выполняется запрос. В Cloud Firestore невозможно получить документы из коллекции верхнего уровня и других коллекций или вложенных коллекций в одном запросе. Firestore не поддерживает запросы к различным коллекциям за один раз. В одном запросе могут использоваться только свойства документов в одной коллекции или вложенной коллекции.
Таким образом, в вашем случае, даже если один документ не существует (не содержит никаких свойств), вы все равно можете запросить коллекцию, которая находится под ним. Другими словами, вы можете запросить вложенную коллекцию queue
, существующую в документе -LFNX ... 7UjS
, но вы не можете запросить всю коллекцию queue
во всех документах. Вы можете запросить только одну вложенную коллекцию за раз.
Edit:
Согласно вашему комментарию:
Я хочу найти коллекции, вложенные в несуществующие документы.
Невозможно найти коллекцию s , поскольку вы не можете выполнять запросы к различным коллекциям. Вы можете только запрос к одному. Самое простое решение, о котором я могу подумать, это проверить, не существует ли документ в вашей коллекции items
(не имеет свойств), а затем создать запрос (items -> documentId -> queue
) и проверить, есть ли какие-либо результаты.
Edit2:
Консоль Firebase сообщает вам через идентификаторы документов, показанные курсивом , что эти документы просто не существуют. Эти документы не существуют, потому что вы их вообще не создавали. То, что вы сделали, было только , чтобы создать вложенную коллекцию под документом, который никогда прежде не существовал. Другими словами, он просто «резервирует» идентификатор документа в этой коллекции, а затем создает под ним коллекцию. Как правило, вы должны создавать только подколлекции документов, которые на самом деле do существуют, но именно так выглядит, когда документ не существует.
В Cloud Firestore документы и вложенные коллекции не работают, как файлы и каталоги файловой системы, которые вы используете. Если вы создаете вложенную коллекцию под документом, она не подразумевает создание каких-либо родительских документов. Подколлекции никак не связаны с родительским документом. Другими словами, в этом месте нет физического документа , но есть другие данные под этим местоположением.
В консоли Firebase эти идентификаторы документов отображаются на экране, так что вы можете перемещаться по дереву и получать вложенные коллекции и документы, которые существуют под ним. Но в то же время консоль предупреждает вас о том, что этот документ не существует, отображая их идентификаторы в курсив . Таким образом, вы не можете отображать или использовать их из-за простого факта, что под ним нет данных. Если вы хотите исправить это, вы должны написать хотя бы свойство, которое может содержать значение. Таким образом, в этих документах будут храниться некоторые данные, поэтому вы сможете делать все, что захотите.
P.S. В Cloud Firestore, если вы удалите документ, его подколлекции продолжат существовать, и это происходит по той же причине, о которой я упоминал выше.