提问者:小点点

snapshot.val()返回未定义,但它正确记录。 Node.js firebase


我不知道为什么,但是当我在snapshot.val()中返回对象时,它不会返回任何东西,但是当我在console.log()它时,它会正确地显示对象。 下面是我返回它的方式:

function Loggear({ email, password }) {
  db.ref("Usuarios")
    .orderByChild("email")
    .equalTo(email)
    .on("child_added", (snapshot) => {
      console.log(snapshot.val())
      return snapshot.val();
    });
}

它如何在console.log()上显示我的对象:

{
  ciudad: 'Buenos Aires',
  codigoPostal: '1000',
  direccionCalle: 'la casa de tomas',
  direccionNumero: '1',
  documento: '1',
  email: 'firebase@pruebita.com',
  fechaNacimiento: '1111-01-01',
  nombreCompleto: 'firebase',
  password: 'contraseña',
  telefonoCelular: '1233'
}

共1个答案

匿名用户

我认为发生这种情况是因为您没有从Loggear函数本身返回任何值。 添加的on子级的值仅返回到LogGear的作用域。 您必须从函数本身返回它,即。

function Loggear({ email, password }) {
  return db.ref("Usuarios")
    .orderByChild("email")
    .equalTo(email)
    .on("child_added", (snapshot) => {
      console.log(snapshot.val())
      return snapshot.val();
    });
}