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

Так что я использую это в настоящее время, чтобы проверить и посмотреть, существует ли do c для пользователя

let user = firebase.auth().currentUser;
                        let userInfo = db.collection("stripe_customers").doc(user.uid);

, а затем, если это так, он запускает скрипт, который я хочу


userInfo.get().then(function (doc) {
                            if (doc.exists) {

Однако вместо того, чтобы проверять определенную c do c, мне нужно попытаться проверить значение поля в некоторых документах.

Например, у меня есть коллекция с именем "stripe_customers"> который имеет документ на пользователя через его UID> затем внутри документа находится коллекция «сборы»> затем внутри «сборы» находится документ со случайной цепочкой цифр и букв «89nzVNrfQCOVqogDaGvo», например, который генерируется полосой для их сбора после покупки (их может быть несколько, если у них более ранний платеж, поэтому мне нужно найти самый последний)> затем в самом последнем документе об оплате мне нужно проверить поле «статус», и это имеет значение «успешно». Таким образом, я могу проверить, кто получил успешный платеж, и если они это сделают, запустит нужный мне скрипт. Я просто так запутался, как этого добиться. Я знаю, как выполнять базовые c запросы, но это несколько сложно. Я должен быть в состоянии убедиться, что текущий UID имеет это поле с этим значением, чтобы я мог видеть, оплачен ли текущий UID или нет, и если они выполнили сценарий, который устанавливает пользовательское утверждение.

Вот визуальное представление о моем потоке хранения БД для того, что я пытаюсь сделать, так что его легче понять https://imgur.com/a/NE1x6sU

1 Ответ

2 голосов
/ 19 февраля 2020

Итак, вы хотите получить самый последний документ в коллекции charges (под) на основе поля created, которое содержит значение метки времени, и проверить значение поля status этого do * 1008. *.

Следующее должно сделать трюк:

const user = firebase.auth().currentUser;
const subCollRef = db.collection("stripe_customers").doc(user.uid).collection("charges");

const query = subCollRef.orderBy('created', 'desc').limit(1);

query.get()
  .then(snapshot => {
    if (snapshot.size > 0 && snapshot.docs[0].data().status === "succeeded") {
         //payment was succeeded, you can "run your script"
    });
  })
  .catch(err => {
    console.log('Error getting documents', err);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...