Объединение вызовов БД Firebase - PullRequest
0 голосов
/ 25 октября 2018

У меня есть облачная функция Firebase, где мне нужно получать больше данных на основе предоставленного идентификатора, см. Код ниже: -

return admin.firestore().collection('companies').doc(snap.data().companyId).get().then((company) => {
    return admin.firestore().collection('customers').doc(snap.data().companyId).get().then((customer) => {
         console.log(company, customer);
    })
})

Есть ли способ объединить эти вызовы, чтобы я ненужно делать 2 вызова в БД каждый раз, когда мне нужно получить данные?

Это поможет снизить затраты и прекратить совершать дорогие вызовы.

В этом примере только два уровня вызововиногда это может доходить до трех вызовов в зависимости от того, какую информацию мне требуется от БД внутри моей облачной функции.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 25 октября 2018

Вы не можете запрашивать две разные коллекции одновременно.Вам нужно либо выполнить несколько запросов, либо заранее объединить данные в одну коллекцию для запроса, который содержит все данные.Это называется «денормализация» и распространено в базах данных NoSQL, в которых нет SQL-подобных операций соединения.

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