ошибка: элементы распространения в литералах карты должны реализовывать «Карту» в flutter

# #android #firebase #flutter #dart

Вопрос:

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

Ошибка — Spread elements in map literals must implement 'Map'.

Я пытался использовать job.data и job.data.data, но все равно это не сработает.

 DocumentSnapshot job = await _firestore
        .collection('supervisorJobs')
        .doc(widget.supervisorJobId)
        .get();

......Code.......

 setState(() {
      jobDetail = {
        'id': job.id,
        ...job.data(),           //On this line, I'm getting an error.    
        'order': order,
        'providers': providers
      };
      loading = false;
    });
 

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

1. Поскольку DocumentSnapshot.data() возвращает a Map<String, dynamic>? , он может вернуться null . Попробуйте использовать оператор распространения с нулевым значением: ...?job.data() . Если это не сработает, можете ли вы проверить, каковы статические и исполняемые типы job.data() ?

2. Нет, это не работает, братан. Пожалуйста, предложите какой-нибудь другой метод.

3. Как это не работает? Что происходит? Как я уже сказал, если это не сработает, пожалуйста, укажите, о каких типах статики и времени выполнения сообщается job.data() . Я не смогу вам помочь, если вы не предоставите дополнительную информацию.