Самый простой способ прочитать поле из документа Firestore - PullRequest
1 голос
/ 19 сентября 2019


Я бегал кругами из-за этой простой проблемы: я пытаюсь прочитать поле в документе Firestore.Я ищу самое простое решение, которое дает мне const для работы.

const userId = context.params.userId;

const customer = admin.firestore()
        .collection('stripe_customers')
        .doc(userId)
        .collection('customer_info')
        .data('customer_id');

Журнал облачных функций дает мне следующее:

TypeError: admin.firestore (...). collection (...). doc (...). collection (...). data не является функцией

Та же ошибка с

.data().customer_id;

Вот еще один вариант, который я попробовал:

const customerDoc = admin.firestore()
        .collection('stripe_customers')
        .doc(userId)
        .collection('customer_info')
        .doc('customer_object');

        const customer = customerDoc.get('customer_id');

        console.log(customer);

С этим параметром консоль записывает ожидающее обещание.Не уверен, как с этим работать.

Я сделал больше попыток, чем могу сосчитать, и исчерпал документацию.Если кто-нибудь знает, как сделать это прямым путем, пожалуйста, дайте мне знать.

1 Ответ

3 голосов
/ 19 сентября 2019

Хорошо, почти правильный ответ был вторым.Я просто должен был дождаться обещания.Вот код для тех, кто заинтересован:

let customerRef = admin.firestore()
            .collection('stripe_customers')
            .doc(userId)
            .collection('customer_info')
            .doc('customer_object');

        const customer = await customerRef.get()
          .then(doc => {
            return doc.data().customer_id;
          })
          .catch(err => {
            console.log('Error getting document', err);
          });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...