Чтобы прояснить, о чем вы говорите: вам нужен список всех песен от всех певцов,
Easy-Peasy. CollectionGroup - ваш друг.
Я не использую вашу среду, но вижу, что:
StreamBuilder(
stream: Firestore.instance.collectionGroup('song list').snapshots(),
- это то, что вам нужно. collectionGroup рассматривает все вложенные коллекции с именем «список песен» как одну коллекцию.
ПРИМЕЧАНИЕ (потому что это всегда появляется ). Каждый возвращаемый documentSnapshot включает поле ' refpath '- это строка с полным путем к указанному c документу. Вы можете тривиально проанализировать строку, чтобы найти родительский документ (ы) или коллекции (ы). Например, конкретная песня, в которой есть refPath "... / singers / {singersID} / songlist / {songID}"
btw, Я НАСТОЯТЕЛЬНО НАСТОЯТЕЛЬНО рекомендую ПРОТИВ использовать имя исполнителя в качестве идентификатора документа. . Запросы, как правило, состоят из полей, а не идентификаторов документов, поэтому они не помогут вашему коду найти исполнителя, и они не являются ни достаточно уникальными, ни достаточно случайно распределенными, чтобы быть эффективными. Позвольте Firestore сгенерировать для вас уникальные идентификаторы документов и указать имя исполнителя в поле.