【问题标题】:How to tell if writing data to firestore has succeeded or not?如何判断向firestore写入数据是否成功?
【发布时间】:2019-03-30 03:19:49
【问题描述】:

我正在使用云功能将数据写入firestore文档,之后我需要发送一个HTTP响应来通知客户端操作是否成功 我想要这样的东西:

const docRef = db.collection("users").doc("testUser");
docRef.set({
    name: "Test"
}).then(ref => {
   if (success) res.status(200).send("success");
   else res.status(500).send("failure");
});

我怎样才能实现这种行为?

【问题讨论】:

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


    【解决方案1】:

    将产生 HTTP 响应的代码放入现有的 then 回调中。只有在服务器端写入成功时才会调用它。看起来您已经在执行此操作,但无需检查名为 success 的任何内容。错误将被传递到您当前未使用的 catch 回调。

    这是 JavaScript 承诺的标准行为。

    【讨论】:

    • 如果写入成功,then里面的代码会执行,如果不成功呢?我应该把对应的代码放在哪里?
    • 正如我所说,在catch 回调中。您应该熟悉 Promise 在 JavaScript 中的工作方式。这都是非常标准的编程实践。如果您不熟悉 JavaScript 和 Cloud Functions,您可能会发现其中一些视频很有帮助。 firebase.google.com/docs/functions/video-series
    • 这里的问题是 catch 仅在某些情况下被调用(例如缺少权限)。如果用户离线,则不会抛出任何内容。我如何捕捉到这个?
    • 在写的时候下线不是错误。当设备重新上线时,写入最终将与服务器同步。
    猜你喜欢
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2013-09-27
    相关资源
    最近更新 更多