如何从函数中获取 return 的 firebase 数据?
How to get firebase data to return from a function?
我正在尝试从 firebase 实时数据库获取数据。我知道如何获取数据,我可以记录它,但它不是 returning。如果我在代码中的其他任何地方使用该函数将该数据设置为变量,它总是 return 未定义。
function getData(target) {
const reference = ref(db, `${target}/`);
onValue(reference, (snapshot) => {
if (snapshot.exists()) {
console.log(snapshot.val());
return snapshot.val();
}
});
}
console.log(snapshot.val());
作品
我尝试了很多解决方案,但无法让它按照我想要的方式工作。
基本上,我想从 firebase 获取数据并使其发挥作用,这样我就可以在我的其他文件中使用它,只需传递一个数据库引用即可。一切正常,除了它不是 return 那个值。
听起来你只想 read data once,你可以像这样用 get()
来做:
function getData(target) {
const reference = ref(db, `${target}/`);
return get(reference).then((snapshot) => {
if (snapshot.exists()) {
return snapshot.val();
}
// TODO: what do you want to return when the snapshot does *not* exist?
});
}
或者用async
/await
async function getData(target) {
const reference = ref(db, `${target}/`);
const snapshot = get(reference);
if (snapshot.exists()) {
return snapshot.val();
}
// TODO: what do you want to return when the snapshot does *not* exist?
}
我正在尝试从 firebase 实时数据库获取数据。我知道如何获取数据,我可以记录它,但它不是 returning。如果我在代码中的其他任何地方使用该函数将该数据设置为变量,它总是 return 未定义。
function getData(target) {
const reference = ref(db, `${target}/`);
onValue(reference, (snapshot) => {
if (snapshot.exists()) {
console.log(snapshot.val());
return snapshot.val();
}
});
}
console.log(snapshot.val());
作品
我尝试了很多解决方案,但无法让它按照我想要的方式工作。 基本上,我想从 firebase 获取数据并使其发挥作用,这样我就可以在我的其他文件中使用它,只需传递一个数据库引用即可。一切正常,除了它不是 return 那个值。
听起来你只想 read data once,你可以像这样用 get()
来做:
function getData(target) {
const reference = ref(db, `${target}/`);
return get(reference).then((snapshot) => {
if (snapshot.exists()) {
return snapshot.val();
}
// TODO: what do you want to return when the snapshot does *not* exist?
});
}
或者用async
/await
async function getData(target) {
const reference = ref(db, `${target}/`);
const snapshot = get(reference);
if (snapshot.exists()) {
return snapshot.val();
}
// TODO: what do you want to return when the snapshot does *not* exist?
}