Как я могу получить имя документа из AsyncSnapshot

#flutter #dart

Вопрос:

Цель

Получить название документа из AsyncSnapshotlt;QuerySnapshotgt;

Что Я Сделал

В этой коллекции users есть много документов, название которых-uid. Использовал FutureBuilder и получил AsyncSnapshotlt;QuerySnapshotgt; .

 FutureBuilder(  future: FirebaseFirestore.instance  .collection("users")  .where('type', arrayContainsAny: ["Game", "Movie"])  .get(),  builder: (BuildContext context,  AsyncSnapshotlt;QuerySnapshotgt; snapshot) {  if (snapshot.hasError) {  return Text(snapshot.error.toString());  }   if (snapshot.connectionState == ConnectionState.done) {  String uid = ...... // Want to get document id (= uid)  

Используя этот снимок, можно было получить поля каждого документа. Но, конечно, они не включают свое собственное имя.

Как я могу получить удостоверение личности с документом AsyncSnapshotlt;QuerySnapshotgt; ?

Ответ №1:

snapshot.data!.docs может содержать ноль, 1 или более документов, соответствующих критериям. Это список моментальных снимков документов.

Так, например, первый результат может быть в snapshot.data!docs[0] . Отсюда, чтобы получить идентификатор документа (в вашем случае uid), просто используйте snapshot.data!docs[0].id .