Input berhasil namun muncul error

mohon tanyanya nih saya ada query, dibawah :
    const item = req.body.item

    database.push({ item });

    let items = [];

    return database.on('value', (snapshot) => {
      snapshot.forEach((item) => {
        items.push({
          id: item.key,
          items: item.val().item
        });
      });
saya rubah menjadi seperti ini karena ingin menambahkan field :
      const item = req.body.item
      const price = req.body.price
      const describe = req.body.describe

      database.push({ item, price, describe});
      let items = [];
      return database.on('value', (snapshot) => {
       snapshot.forEach((item) => {
        items.push({
         id: item.key,
         items: item.val().item,
         items: price.val().price,
         items : describe.val().describe
        });
       });
       res.status(200).json(items)
      }
code diatas berguna untuk insert data ke firebase, datanya berhasil masuk cuman message di postman muncul keterangan
Error: could not handle the request
errornya dmn y, mohon bantuanya
avatar maszgalang

@maszgalang

297 Kontribusi 80 Poin


Jawaban

mungkin karena kamu return duluan gan, jadi ngga sampai bagian response status 200, return nya pindahkan ke sebelum res. Jadim jangan di return dulu, return artinya ngebalikin hasil, jadi dia ngga sampai di "res.status(200)" 1. jangan return di database return res.status....
avatar hilmanski

@hilmanski

2540 Kontribusi 2085 Poin


tapi ngomong2 itu returnnya udh sebelum res bang
exports.addItem = functions.https.onRequest((req, res) => {
 return cors(req, res, () => {
  if(req.method !== 'POST') {
   return res.status(401).json({
    message: 'Not allowed'
   })
  }
  console.log(req.body)
  const item = req.body.item
  database.push({ item });
  let items = [];
  return database.on('value', (snapshot) => {
   snapshot.forEach((item) => {
    items.push({
     id: item.key,
     items: item.val().item
    });
   });
   res.status(200).json(items)
  }, (error) => {
   res.status(error.code).json({
    message: `Something went wrong. ${error.message}`
   })
  })
 })
})
avatar maszgalang

@maszgalang

297 Kontribusi 80 Poin


return itu harus terakhir, karena code dibawah return akan diignore, kalau di visual studio code misalnya, text highlightnya akan turun opacitynya dan artinya text tersebut tidak akan dieksekusi. Saat kamu mereturn database.on, artinya beres eksekusi fungsi tersebut tidak akan mengeksekusi code setelahnya, dalam hal ini res.status(200).json...
avatar mudziahutama

@mudziahutama

18 Kontribusi 4 Poin


Login untuk gabung berdiskusi