Как читать скрытые идентификаторы Firestore - PullRequest
0 голосов
/ 04 января 2019

Как читать коллекцию, когда в узле нет поля?

Например, у меня есть данные сбора, как показано ниже:

tags > tagid1 > postId > { createdBy : 'user1' }
tags > tagid2 > postId > { createdBy : 'user1' }
tags > tagid3 > postId > { createdBy : 'user1' }

Там, где я пытаюсь прочитать коллекцию тегов, она не дает никаких данных.

const g = await db.collection('tags').get();
g.size // 0  - but it has three sub element tagid1, tagid2, tagId3 (these ids are dynamic)

Есть ли способ прочитать коллекцию, если у детей нет прямого элемента?

1 Ответ

0 голосов
/ 04 января 2019

Вы получаете 0, потому что в вашей коллекции tags нет фактических документов. tagid1, tagid2, tagId3 и т. Д. Не существуют. Эти документы (теговые объекты) не существуют, потому что вы их вообще не создавали. Что вы сделали, так это создали вложенную коллекцию под документом, который никогда не существовал. Другими словами, вы просто «зарезервировали» id для документа в вашей коллекции tags, а затем создали под ним коллекцию. Вообще говоря, вы должны создавать только те коллекции документов, которые действительно существуют.

Имейте в виду, что в Firestore документы и вложенные коллекции не работают как файлы и каталоги файловой системы. Если вы создаете вложенную коллекцию под документом, она не подразумевает создание каких-либо родительских документов. Подколлекции никак не связаны с родительским документом.

Если вы хотите получить фактическое количество документов, создайте под каждым объектом тега хотя бы свойство, содержащее значение.

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