Node процесс не выходит после того, как firebase однажды
Используя node.js с npm firebase.
var firebase = require('firebase');
var blahFirebase = new firebase('https://myfirebase.firebaseIO.com/blah');
blahFirebase.once('value', function (snapshot) {
//
});
Почему node не завершает чтение данных?
Ответ 1
Обновление
Обратите внимание, что это больше не применимо. Node.js больше не будет зависать при использовании once(), хотя он будет удерживаться открытым до тех пор, пока на удаленном сервере будут активные слушатели.
Оригинал
Процесс Firebase открывает сокеты на сервере и устанавливает слушателей для входящих данных по этим соединениям. Так же, как веб-сервер node, ожидающий входящих HTTP-соединений, это открывает процесс.
Чтобы завершить процесс, вы можете просто использовать process.exit() изнутри обратного вызова:
blahFirebase.once('value', function (snapshot) {
//
process.exit();
});
Ответ 2
В новом API Firebase вы должны использовать firebase.app.App.delete(), чтобы освободить ресурсы, которые он удерживает. Например:
var app = firebase.initializeApp({ ... });
var db = firebase.database();
// Do something
app.delete(); // Release resources
Не используйте process.exit(), так как он остановит весь процесс (это не то, что вы обычно хотели бы).
Ответ 3
В моем случае используется администратор firebase,