在node.js中从firebase实时数据库中获取数据时如何通过函数返回数据



如何在DATA中获得此键并在函数外使用此键?

let DATA = [];
const database = admin.database();
let keyref = database.ref("data");
keyref.once("value", async function (snapshot) {
let key = await snapshot.val(); // i want this key data out side this function
DATA.push(key);
console.log(DATA);
});
console.log(DATA); // i want here that inside function key

简单地说,我希望在函数

之外获取数据

仅取一次RTDB数据时,建议使用get()方法。该方法是异步的,因此需要按照以下行执行操作:

async function getRTDBData(ref) {
const database = admin.database();
const keyref = database.ref(ref);
const snapshot = await keyref.get();
if (snapshot.exists()) {
return snapshot.val();
} else {
return .... // Up to you to adapt here
}
}
getRTDBData("data")
.then(val => {
// Do what you want with val
console.log(val);
})
async function getData() {
console.log("Refreshing Firebase Credentials");
const keyref = database.ref("data");
const snapshot = await keyref.get();
if (snapshot.exists()) {
const snapshotVal = snapshot.val();
console.log(snapshotVal);
credentials = {
expires_at: new Date(snapshotVal.expires_at),
enc_key: snapshotVal.enc_key,
iv: snapshotVal.iv,
};
} else {
console.log("Firebase Credentials not found");
process.exit(1);
}
}
module.exports = {
getData
};

在需要的地方使用这个函数

相关内容