Как я могу получить подколлекцию на Firebase, не указывая ее? - PullRequest
0 голосов
/ 07 марта 2020

Привет, ребята. У меня есть эти подколлекции в моей базе данных Firebase в коллекции «словарь», но мне нужно было бы вызывать их, не задавая их, так как их несколько, и они вызываются с одной страницы. Можно ли вместо набора «цвета» указывать его не как «идентификатор документа», а для коллекции?

class CategoryScreen extends StatelessWidget {

final DocumentSnapshot vocabulary;

CategoryScreen(this.vocabulary);

@override
Widget build(BuildContext context) {
return Scaffold(
  body: FutureBuilder<QuerySnapshot>(
    future: Firestore.instance.collection('vocabulary').document(vocabulary.documentID)
    .collection('colors').getDocuments(),
    builder: (context, snapshot){
      if(!snapshot.hasData)
        return Center(
          child: CircularProgressIndicator(),);
      else
        return Column(
          children: <Widget>[
            Padding(
              padding: const EdgeInsets.all(10.0),
              child: Card(
                elevation: 7.0,
                shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(50)
                ),
                child: Column(
                  children: <Widget>[
                    Container(
                        height: 350.0,
                        width: 350.0,
                        decoration: BoxDecoration(
                            image: DecorationImage(
                                image: NetworkImage(vocabulary.data["image"]
                                ),
                                fit: BoxFit.fill),
                            borderRadius: BorderRadius.only(
                                topLeft: Radius.circular(50),
                                topRight: Radius.circular(50)))
                    ),
                    Container(
                      height: 70.0,
                      width: 300.0,
                      child: Padding(
                          padding: const EdgeInsets.all(2.0),
                          child: Center(
                            child: AutoSizeText(vocabulary.data["name"],
                              style: TextStyle(
                                  fontFamily: 'Twiddlestix',
                                  fontSize: 25,
                                  fontWeight: FontWeight.bold),
                              textAlign: TextAlign.center,
                              minFontSize: 15,
                            ),
                          )
                      ),


                    ),

                  ],

                ),
              ),
            ),

          ],
        );
    },

   ),
  );
 }
}

1 Ответ

0 голосов
/ 07 марта 2020

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

Вместо коллекции " цвета ", можно ли не указывать его как" documentID ", но для коллекции?

Нет, это невозможно. Вы не можете заменить это.

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