Получить ссылку на документ, используя имя пользователя - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь получить ссылку на документ из Firestore, используя следующий код:

var sfDocRef = database.collection("tags").doc("567BHJV6JF95HVCF44HB");

Теперь, если я наведу курсор мыши на sfDocRef, это даст мне

(local var) sfDocRef: FirebaseFirestore.DocumentReference<FirebaseFirestore.DocumentData>

Но мое требование - получить адрес документа по имени. Не по его идентификатору. Для этой цели я использую следующий код:

var sfDocRef = database.collection("tags").where("userName", "==", userName);

Теперь этот код дает мне следующий тип данных, если навести на него курсор:

(local var) sfDocRef: FirebaseFirestore.Query<FirebaseFirestore.DocumentData>

Я хочу DocumentReference тип данных, но не используя ID, а используя имя пользователя. Могу ли я сделать это в одной строке? Я не нахожу в документации никакого способа сделать это. Любая помощь будет оценена.

1 Ответ

1 голос
/ 28 апреля 2020

Запрос может иметь несколько результатов. Таким образом, он не возвращает единственное число DocumentReference, а вместо этого возвращает Query, который может ссылаться на несколько документов.

Чтобы получить фактические ссылки на документы, вам нужно выполнить запрос и l oop по результатам:

var query = database.collection("tags").where("userName", "==", userName);
query.get()
    .then(function(querySnapshot) {
        querySnapshot.forEach(function(doc) {
            // doc.data() is never undefined for query doc snapshots
            console.log(doc.id, " => ", doc.data());
            // Document reference is available as doc.ref
        });
    })
    .catch(function(error) {
        console.log("Error getting documents: ", error);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...