Как получить идентификатор документа firestore из моментального снимка документа?

#flutter #dart #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.documentID

Ответ №4:

Кроме того, используйте обратные метки при интерпретации строк.

 print('ID : ${list[0].documentID}'); // not working
print(`ID : ${list[0].documentID}`); // working
  

Ответ №5:

Для DocumentSnapshot, document.id

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

1. Чем это отличается от ответов, уже приведенных здесь?

2. Это не .documentId, это .id

3. Однако это уже было опубликовано, включая упоминание об устаревании предыдущего свойства