将Node.js管理员SDK与Firebase函数一起使用每当我尝试访问实时数据库时,都会出现超时。仅在本地测试函数(firebase serve --only functions,hosting
)以及使用functions.config().firebase
初始化默认应用程序时才会发生这种情况。
这是一种新行为,仅在几天前开始。但是,如果我尝试使用serviceAccount.json
文件初始化默认应用程序,则一切都按预期工作。
我使用firebase-admin
版本 4.2.1 和firebase-functions
版本 0.5.9 。
我写了一个由于超时而失败的直接http triggered
函数:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const db = admin.database();
exports.testDbConnection = functions.https.onRequest((req, res) => {
return admin.database().ref().once('value')
.then(function(snapshot) {
res.json(snapshot);
}).catch(function(error) {
res.json(error);
});
});
答案 0 :(得分:0)
来自文档
始终使用send(),redirect()或end()结束HTTP函数。否则,您的功能可能会继续运行并被系统强行终止
请参阅https://firebase.google.com/docs/functions/http-events#terminate_http_functions
答案 1 :(得分:0)
这可能取决于您使用的function_map
版本,但看起来很熟悉Github issue
解决方案是升级到最新版本的CLI或使用解决方案解决方案:
firebase-tools
export GOOGLE_APPLICATION_CREDENTIALS="absolute/path/to/file.json"