Firebase 函数无法读取媒体资源"数据库网址"



我在Firebase Functions日志中一直得到以下错误

TypeError: Cannot read property 'databaseURL' of undefined at repoManagerDatabaseFromApp

这是我的代码不确定我做错了什么

exports.dynamicMetaTagsUpdate = functions.https.onRequest(async (request, response) => {
console.log("dynamicMetaTagsUpdate Called");
const html = fs.readFileSync("./index.html", "utf8");
const {id} = request.query;
const botDetector = new BotDetector();
const userAgent = request.headers["user-agent"].toString();
const bot = botDetector.parse(userAgent);
if (bot || DEBUG_BOT) {
try {
console.log("try");
const dbRef = firebase.database().ref("https://wiijii-visualizations-default-rtdb.firebaseio.com/");
dbRef.child("charts").child(id).get().then((snapshot) => {
if (snapshot.exists()) {
console.log(snapshot.val());
} else {
console.log("No data available");
}
}).catch((error) => {
console.error(error);
});
return response.send(html);
} catch (e) {
console.log(e);
return response.send(html);
}
}
return response.send(html);
});

这是我的代码

console.log("try");
const ref = admin.database().ref("charts");
console.log("ref");
console.log(ref);
ref.child(id).get().then((snapshot) => {
if (snapshot.exists()) {
console.log(snapshot.val());
} else {
console.log("No data available");
}
}).catch((error) => {
console.error(error);
});

通常您会在云功能中使用Firebase Admin SDK,而不是客户端SDK。当你使用admin.database()时,它返回默认应用程序的数据库服务。这本质上意味着你将获得已经部署云功能的Firebase项目的数据库实例。

import * as admin from "firebase-admin"
// Default app
admin.initializeApp()
const database = admin.database()

只有在单个Cloud函数中使用多个Firebase项目(或Admin SDK实例)时,才需要在这些方法中传递任何参数。如果需要,您可以在文档中找到更多关于初始化多个实例的信息。

最新更新