#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 и посмотрите результат