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

Diperbarui 2 tahun yang lalu

3 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

2670 Kontribusi 2132 Poin

Dipost 5 tahun yang lalu

Tanggapan

oke bang ane coba dulu :*

tapi ngomong2 itu returnnya udh sebelum res bang <pre> exports.addItem = functions.https.onRequest((req, res) =&gt; { return cors(req, res, () =&gt; { 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) =&gt; { snapshot.forEach((item) =&gt; { items.push({ id: item.key, items: item.val().item }); }); res.status(200).json(items) }, (error) =&gt; { res.status(error.code).json({ message: Something went wrong. ${error.message} }) }) }) }) </pre>

avatar maszgalang
@maszgalang

297 Kontribusi 80 Poin

Dipost 5 tahun yang lalu

Tanggapan

coba baca lagi ya jawaban saya

<div>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...</div>

avatar mudziahutama
@mudziahutama

18 Kontribusi 4 Poin

Dipost 2 tahun yang lalu

Login untuk ikut Jawaban