Принесите значение переменной из Block Scope для использования в Global Scope в качестве простой переменной - JAVASCRIPT. В FIRESTORE - PullRequest
0 голосов
/ 29 февраля 2020

Я создаю приложение в Firebase, используя FireStore в качестве базы данных.

В приведенном ниже коде я создаю переменную order и присваиваю ей значение 1.

Затем я обновляю значение до номера 4 и console.log, чтобы проверить. Что получается хорошо.

Но когда я записываю переменную после функции, чтобы перепроверить, она снова возвращает 1 вместо обновленного значения (то есть 4).

Я хочу использовать значение, полученное из базы данных, в глобальном пространстве имен. (используйте его просто в моем JS коде вне этой функции.)

Это мой код (см. // комментарии)

    console.log("Value initiated : " + order); // logs 'Value initiated : 1'

    //A function that gets another value from the FireStore Database and assigns it to the variable.
    function getField() {
      db.collection("index")
        .doc("artNum")
        .get()
        .then(function(doc) {
          order = doc.data().artNum; //I reassign the variable to '4' here.
          console.log("Value assigned : " + order); // logs 'Value assigned : 4'
        })
        .catch(err => {
          console.log(err);
        });
    }

    getField(); 
    console.log("Updated Value : " + order); // (to crosscheck) logs " Updated Value : 1 " but should be equal to 4 

Я был в JS всего месяц, я довольно новичок. Вот некоторые из решений, которые я подумал и попробовал:

  1. Используйте переменную order вне функции сразу, как я делал выше, но это не сработало.
  2. Присвойте значение order новой переменной в глобальном пространстве имен, которая тоже не работает.

Я хочу использовать это значение снаружи в моем глобальном пространстве имен.

По сути, я хочу использовать переменную order снаружи в своем коде. Кроме того, я снова буду использовать эту переменную для именования других документов в моей базе данных Firestore. Проще говоря, мне необходимо иметь это значение как простую глобальную var переменную в моем скрипте.

Пожалуйста, помогите мне с тем, что я делаю неправильно или чего не хватает в этом коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...