Использование базы данных Firebase Realtime с узла - PullRequest
0 голосов
/ 07 мая 2018

Каждый раз, когда я запускаю код базы данных Firebase Realtime из Node, используя Admin SDK, процесс зависает. Например, у меня может быть приложение узла deactivate.js:

const admin = require("firebase-admin");
// initialize app code...

admin.database().ref(`users/${userId}/active`).set(false)

Я бегу с node deactivate.js. Пользователь будет отключен, так что это хорошо. Но тогда процесс узла просто зависнет. Мне нужно нажать ctrl - c , чтобы вернуться к приглашению.

Должен ли я закрывать соединения или делать что-то еще в приложении Node, использующем Firebase? С функциями Firebase я должен вернуть обещание, сгенерированное из вышеприведенного вызова. Итак, выполняет ли Firebase Functions автоматическое закрытие того, что мне сейчас нужно обрабатывать вручную?

1 Ответ

0 голосов
/ 08 мая 2018

То, как вы работаете с облачными функциями, совсем не так, как вы работаете с автономными процессами узлов. При использовании Admin SDK для доступа к базе данных реального времени в автономном узле, который должен завершиться, вместо этого сделайте что-то подобное, чтобы убедиться, что процесс завершается после завершения всей работы:

admin.database().ref(`users/${userId}/active`).set(false)
.then(() => {
    process.exit(0)
})
.catch((err) => {
    console.error(err)
    process.exit(1)
})
...