无论何时我使用Admin SDK从Node运行Firebase实时数据库代码,该过程都会挂起。例如,我可能有一个节点应用程序deactivate.js
:
const admin = require("firebase-admin");
// initialize app code...
admin.database().ref(`users/${userId}/active`).set(false)
我使用node deactivate.js
。用户将被设置为不活动状态,这样做很好。但是节点进程只会挂起。我必须按 ctrl - c 才能返回提示。
我是否应该使用Firebase关闭连接或在Node应用程序中执行其他操作?使用Firebase函数,我必须返回从上面调用生成的promise。那么,Firebase函数是否会自动处理关闭我现在需要手动处理的内容?
答案 0 :(得分:0)
您处理云功能的方式与处理独立节点进程完全不同。使用Admin SDK在必须完成的独立节点进程中访问实时数据库时,请执行以下操作,以确保在所有工作完成后退出该进程:
admin.database().ref(`users/${userId}/active`).set(false)
.then(() => {
process.exit(0)
})
.catch((err) => {
console.error(err)
process.exit(1)
})