Каким может быть решение ошибки типа ‘String’, не являющейся подтипом типа ‘int’ ‘index’?

#flutter #dart

#flutter #dart

Вопрос:

Я пытаюсь вызвать ссылку на документ, но продолжаю получать этот тип ошибки

‘String’ не является подтипом типа ‘int’ ‘index’

В FutureBuilder<QuerySnapshot>. чем может быть проблема с соответствующим виджетом, вызывающим ошибку? См. Изображение Firebase

 CollectionReference productsRef = Firestore.instance.collection("MyShop");

FirebaseServices _firebaseServices = FirebaseServices();

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: Stack(
      children: [
        FutureBuilder(  //          <<<<<===================FutureBuilder
          future: productsRef
              .document(widget.shopname)
              .collection("Cart")
              .where("myid", isEqualTo: widget.myid)
              .getDocuments(),
          builder: (context, snapshot) {
            if (!snapshot.hasData) {
              Text("Loading ..");
            }
            if (snapshot.hasError) {
              return Scaffold(
                body: Center(
                  child: Text("Error: ${snapshot.error}"),
                ),
              );
            }
            if (snapshot.connectionState == ConnectionState.done) {
              
              return ListView(
                children: [
                  Row(
                    children: [
                      Padding(
                        padding: const EdgeInsets.only(
                          top: 24.0,
                          left: 24.0,
                          right: 24.0,
                          bottom: 4.0,
                        ),
                        child: Text(
                          "${snapshot.data.documents["myname"]}", //   <<<=========Doceference
                          style: Constants.boldHeading,
                        ),
                      ),
                      Spacer(),
 

Ответ №1:

Я думаю, что для таких документов нужно использовать целое число

 snapshot.data.documents[0].data['myname']
 

Комментарии:

1. говорит [RangeError (index): недопустимое значение: допустимый диапазон значений пуст: 0 ]

2. попробуйте консольный snapshot.data.documents и посмотрите результат