Чтение из Firebase - PullRequest
       6

Чтение из Firebase

0 голосов
/ 24 марта 2020

Я очень плохо знаком с Firebase и с JS, и это не самая простая вещь для понимания.

Итак, у меня есть база данных Firebase в реальном времени, настроенная с фиктивными профилями "пользователей" , что каждый из них содержит разные свойства. picture of database entry, example

Я пытаюсь вызвать свойства пользователя. Мне удалось добиться этого с помощью следующего подхода:

let installDateRef = database.ref(`users/${userAccount}/installationDate`);
let lastUsedDateRef = database.ref(`users/${userAccount}/lastUsed`);
 installDateRef.on('value', function(snapshot) {
        installationDate.innerText = (snapshot.val());
    }, function (error) {
        installationDate.innerText = `Error: ${error.code}`
    });

    lastUsedDateRef.on('value', function(snapshot) {
        lastUsedDate.innerText = (snapshot.val());
    }, function (error) {
        lastUsedDate.innerText = `Error: ${error.code}`
    });

Но в моем приложении я хочу отобразить всю пользовательскую информацию, поэтому копирование этой функции .on кажется излишним. Кто-то сказал, что есть такой более чистый подход, как этот ниже Он либо возвращает неопределенное значение, либо возвращает массив моих обещаний const. .val () вообще не работает даже, говоря, что это не функция.

Любая помощь по наилучшей и рабочей практике будет очень цениться.

Спасибо

1 Ответ

0 голосов
/ 26 марта 2020

@ Дуг Стивенсон, спасибо! Это именно то, что нужно было:

const firebasePromises = [
        database.ref(`users/${userAccount}/installationDate`).once('value'),
        database.ref(`users/${userAccount}/lastUsed`).once('value'),
        ];

        Promise.all(firebasePromises).then(snap => {
            installationDateHTML.innerText = snap[0].val();
            lastUsedDateHTML.innerText     = snap[1].val();

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