#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
});
- И для получения 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
устарел