Как найти идентификатор документа, если вам известны данные только одного поля (firestore)?

#firebase #flutter #dart #filter #google-cloud-firestore

#firebase #флаттер #dart #Фильтр #google-облако-firestore

Вопрос:

У меня проблема. Я должен получить автоматически сгенерированный идентификатор документа с помощью данных поля, которое находится в документе, из которого я должен узнать идентификатор.

Чтобы сделать это более логичным, пример: как вы можете видеть на скриншоте, у меня есть коллекция «продавец», которая, в свою очередь, содержит разные документы, содержащие разные данные. Приложение знает только имя, но не из какого поля оно берет имя (например, имя: ‘Paul’). Задача состоит в том, что теперь приложение должно выяснить, из какого документа взято имя Paul. В этом случае это будет ‘4wHJZ3I2hAqbCFP0323A ‘.

Я видел в Интернете, что для firestore есть опция фильтра, но я не знаю, как я могу использовать это, чтобы получить идентификатор документа. Кто-нибудь может мне помочь?

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

Ответ №1:

Вам нужно сделать следующее:

 final firestoreInstance = FirebaseFirestore.instance;
firestoreInstance
    .collection("seller")
    .where("name", isEqualTo: "Paul")
    .get()
    .then((value) {
  value.docs.forEach((result) {
    print(result.id);
  });
});
  

с помощью async / await:

 getData() async {
 final firestoreInstance = FirebaseFirestore.instance;
 final result = await firestoreInstance.collection("users").where("name", isEqualTo: "Paul").get();
 result.docs.forEach((result) {
    print(result.id);
  });
});
  

result.id даст вам идентификатор документа, где name = Paul .