Reputation: 1039
How can I get this key in DATA and use this key outside of the function?
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
In short, I want fetched data outside the function
Upvotes: 1
Views: 452
Reputation: 11
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
};
Use this function where you want to this data
Upvotes: 1
Reputation: 83163
When fetching RTDB data only once, it is advised to use the get()
method. This method is asynchronous, so you need to do something along the following lines:
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);
})
Upvotes: 3