#flutter #google-cloud-firestore
#flutter #google-облако-firestore
Вопрос:
QuerySnapshot querySnapshot = await _collectionRef
.limit(1)
.orderBy('date')
.getDocuments();
var list = querySnapshot.documents;
querySnapshot.documents.map((document) {
print('Document : $document'); // not printing anything.
});
if(list.length > 0) {
print('ID : ${list[0].documentID}'); // not working
}
Это точный код, который я пробовал…
В чем ошибка в коде?
Ответ №1:
Согласно документации API, DocumentSnapshot имеет свойство documentId, поэтому я ожидаю, что это сработает:
querySnapshot.documents[0].documentID
Комментарии:
1. И что это делает, если не то, что вы ожидаете?
2. Ваша строка работает!. Но я пробовал по-другому. Я обновлю код. Пожалуйста, скажите мне, что в этом не так.
3. Если у вас есть вопрос, отличный от первого, который вы задали, вам следует опубликовать другой пост, а не редактировать существующий.
4. Извините. тот же вопрос. Все то же самое. Просто я удаляю переменную для сохранения querySnapshot ранее. Теперь я обновил, это код, который у меня есть.
5. вместо
map
я должен использоватьforEach
. Не уверен, почему переменная list ничего не печатает. Я использую полный путьquerySnapshot.documents[0].documentID
Спасибо за помощь..
Ответ №2:
product.id
documentID
устарел и не должен использоваться. Не рекомендуется в пользу .id
.
Попробуйте заменить использование устаревшего элемента заменой.
Ответ №3:
Для DocumentSnapshot, document.id
Комментарии:
1. Чем это отличается от ответов, уже приведенных здесь?
2. Это не .documentId, это .id
3. Хотя это уже было опубликовано, включая упоминание об устаревании предыдущего свойства
Ответ №4:
Для DocumentSnapshot, document.documentID
Ответ №5:
Кроме того, используйте обратные метки при интерпретации строк.
print('ID : ${list[0].documentID}'); // not working
print(`ID : ${list[0].documentID}`); // working