Я создаю приложение в 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 всего месяц, я довольно новичок. Вот некоторые из решений, которые я подумал и попробовал:
- Используйте переменную
order
вне функции сразу, как я делал выше, но это не сработало. - Присвойте значение
order
новой переменной в глобальном пространстве имен, которая тоже не работает.
Я хочу использовать это значение снаружи в моем глобальном пространстве имен.
По сути, я хочу использовать переменную order
снаружи в своем коде. Кроме того, я снова буду использовать эту переменную для именования других документов в моей базе данных Firestore. Проще говоря, мне необходимо иметь это значение как простую глобальную var
переменную в моем скрипте.
Пожалуйста, помогите мне с тем, что я делаю неправильно или чего не хватает в этом коде.