【发布时间】:2018-01-14 18:27:52
【问题描述】:
我正在使用 CRNA 构建一个 React-Native 应用程序(节点:v9.3.0,npm:4.6.1,RN:0.50.4 React:16.0.0)。
我的控制台给出以下错误: “未定义不是一个对象(评估 'secciones.forEach')”
有bug的代码如下:
async buscarProfesores(secciones) {
const profesores = [];
secciones.forEach(seccion => {
firebase.database().ref(`/Usuarios/${seccion.profesor}`).on('value', async snapshot => {
const prof = snapshot.val();
await profesores.push(prof.nombre);
});
});
return await profesores;}
async buscarSecciones() {
try {
const usuario = firebase.auth().currentUser.uid;
let secciones;
await firebase.database().ref(`/Usuarios/${usuario}`)
.on('value', snapshot => {
secciones = snapshot.val().secciones;
return false;
});
return secciones;
} catch (error) {
console.log(error);
}
}
我调用buscarProfesores函数是这个sn-p:
async auxiliar() {
try {
const secciones = await this.buscarSecciones();
const profesores = await this.buscarProfesores(secciones);
const data = await this.armarSnapshot(secciones, profesores);
return data;
} catch (error) {
console.log(error);
}
}
【问题讨论】:
-
您将未定义的值传递给 buscarProfesores(),但您没有显示该部分代码。
-
是的,我忘记复制了,帖子已修复@DougStevenson
-
您在 buscarSecciones() 中的查询结果似乎返回未定义。
-
是的,因为我使用的是异步和等待,但仍然无法正常工作,我在“console.log() 进行调试”中添加了一些标志,并为 on() 方法提供了资金从查询不工作,至少没有运行很长时间。 @DougStevenson
-
使用一次(),而不是()。两者有很大区别。
标签: javascript firebase react-native firebase-realtime-database