данные обновления документа firestore без идентификатора

#flutter #dart #google-cloud-firestore

#трепетание #дротик #google-облако-firestore

Вопрос:

У меня есть снимок коллекции firestore,

 fireStoreInst.collection(widget.loggedInUser.uid)
             .doc('subjects')
             .collection(widget.deckName).snapshots()
 

и я хочу обновить данные, внутри которых в соответствии с щелчком плоской кнопки (жесткий / хороший / легкий).
когда пользователь нажимает любую из этих 3 кнопок, я хочу обновить соответствующие данные до true, а остальные 2 — до false.

введите описание изображения здесь

Поскольку я не знаю docID, я попытался,

1.

 widget.snapshot.data.docs[widget.cardIndex].updateData({
          widget.hardness: true,
          widget.remove1: false,
          widget.remove2: false
        });
 
  1. И для получения documentId я устал,
 docID: snapshot.data.docs[cardIndex].documentID
 
 FirebaseFirestore.instance
            .collection('JWfsiG4VAQPpv3PNwP7E5dNbGEe2')
            .doc('subjects')
            .collection('Latest QA')
            .doc(widget.docID)
            .update({
          widget.hardness: true,
          widget.remove1: false,
          widget.remove2: false
        });
 

Но все закончилось ошибками. большинство из них из-за устаревших кодов кто-нибудь может мне помочь?

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

1. Какую ошибку вы получаете ..!?

2. Класс ‘QueryDocumentSnapshot’ не имеет средства получения экземпляра ‘documentId’. Получатель: экземпляр ‘QueryDocumentSnapshot’ Пытался вызвать: documentId

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

4. Я получил этот код из stackoverflow, но недавно было изменено много кодов

5. Затем, пожалуйста, попробуйте с обновленным кодом

Ответ №1:

Проблема решена:

docID: snapshot.data.docs[cardIndex].id

вместо

docID: snapshot.data.docs[cardIndex].documentID

documentID устарел