Получить данные карты в Firebase, чтобы флаттер - PullRequest
0 голосов
/ 27 марта 2020

У меня есть эта структура данных Структура базы данных

Мне нужно вызвать весь элемент в коллекции FavDestination, и вот мой код в Flutter

child: StreamBuilder(
stream: Firestore.instance.collection('FavDestination').snapshots(),
builder: (context, snapshot){
if(!snapshot.hasData) return Text('Loading Data... Please Wait');
return
ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: snapshot.data.documents.length, //snapshot.data.document.length,
itemBuilder: (BuildContext context, int index) {
DocumentSnapshot destination = snapshot.data.documents[index];
//DocumentSnapshot destination = snapshot.data.document[index];
return GestureDetector(
                  onTap: () => Navigator.push(
                    context,
                    MaterialPageRoute(
                      builder: (_) => DestinationScreen(
                        destination: destination,
                      ),
                    ),
                  ),

It извлекает данные успешно, и если пользователь нажимает на документ, он go переходит на экран назначения, и мне нужно восстановить все данные в действиях, вот мой код на экране назначения

Expanded(
        child: ListView.builder(
          padding: EdgeInsets.only(top: 10.0, bottom: 15.0),
          itemCount: widget.destination['activities'].length,
          itemBuilder: (BuildContext context, int index) {
            DocumentSnapshot activity = widget.destination['activities'][index];
            return Stack(
              children: <Widget>[
                  Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: <Widget>[
                       Container(
                          width: 120.0,
                          child: Text(
                          activity['name'],
                          style: TextStyle(
                          fontSize: 18.0,
                          fontWeight: FontWeight.w600,
                          ),

и вот ошибка я получил Сообщение об ошибке

Есть идеи, как ее решить? Спасибо

1 Ответ

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

Похоже, что ваше поле activities является вложенной картой. На первом уровне у вас есть поле Bali1, которое также является картой. И если код активности пытается получить name на первом уровне.

Я полагаю, вам следует больше работать над destination структурой объекта. Вы можете распечатать его, чтобы проанализировать и попытаться сопоставить такие объекты, как Map<dynamic, dynamic> и Bali1.

У меня нет площадки, чтобы делать это быстро, но я нашел похожий подход здесь: Как сделать Я получаю указанные c значения из снимка данных в флаттере?

Надеюсь, это поможет!

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