具有firebase功能的节点js不返回任何内容

时间:2020-09-29 17:52:20

标签: node.js firebase google-cloud-firestore

post方法不返回任何内容,同样返回get方法 该代码在使用firebase的节点js上 火力基地的设置已经完成 但是当传递json时,它返回空

exports.postBlog = (req, res) => {
  (async() => {
    try {
      await dbs.collection('myBlog').doc('zim').set(data);

      return res.status(200).send();
    } catch (error) {
      console.log("there was an error running this file");
      return res.status(500).send(error);
    }
  })();
};

exports.getblog = (req, res) => {
  (async() => {
    try {
      const page = dbs.collection('myblog').doc('zim');
      await page.get(data);

      return res.status(200).send(response);
    } catch (error) {
      console.log(error);
      return res.status(500).send(error);
    }
  })();
};

1 个答案:

答案 0 :(得分:0)

我们不知道您正在使用什么,但是可能正在使用某些node服务器,例如express。通常,您可能会找到here的所有respose文档。我认为代码可以正常工作,并且不会返回任何错误。

因此,在postBlog中,您必须在send方法中返回某些内容,具体取决于要返回的内容。最简单的示例是返回文本“在Firestore中保存的文档”。为此,您可以添加参数以发送功能:

return res.status(200).send("Document saved in Firestore");

另一件事是,我们不知道该函数实际上在做什么,因为它写入了Firestore undefined对象data(至少在看发布的代码)。您必须使用set方法编写一些对象。请找到(documentation)和example for node.js

对于getblog,未定义可能是因为您要发送代码中未定义的对象respose。再次,我们不知道您想在逻辑上实现什么...再次使用了数据对象,但是根据API documentation get可以有一个参数,但是这些是选项,通常是未使用。您可以尝试以下方法:

exports.getblog = (req, res) => {
  (async() => {
    try {
      const page = dbs.collection('myblog').doc('zim');
      let documentSnapshot = await page.get();
      let response = documentSnapshot.data();

      return res.status(200).send(response);
    } catch (error) {
      console.log(error);
      return res.status(500).send(error);
    }
  })();
};

我强烈建议您尝试同时包含setget示例的Get started with Cloud Firestore文档。 get方法示例在此处写入控制台,但是您可以轻松地采用将cosole.log更改为res.status(200).send的代码。