【问题标题】:Firestore database only works every other timeFirestore 数据库每隔一段时间才工作一次
【发布时间】:2021-08-16 03:28:46
【问题描述】:

我的页面上有一个按钮,看起来像这样

<Button
disabled={loading}
type="submit"
className="w-100 text-center mt-3"
onClick={() => {
    firebase
    .firestore()
    .collection("users")
    .doc("123")
    .set({ test: 123})
    .then(() => {
        setSuccessAlert("Updated user");
    })
    .catch(() => {
        setErrorAlert("Could not update user");
    });
}}
>
    Add user
</Button>

它使用引导程序和打字稿,如果这可能会给你一个错误提示

如果我在 onclick 函数中放置一个控制台日志,它将始终记录它,但是对于上面的示例,我需要按两次它才能工作。我测试过,不只是我不耐烦,我等了超过五分钟才再次按下它,而是我第二次按下它的瞬间。

无论如何,如果您知道我可能做错了什么,请帮助我。我迷路了

【问题讨论】:

  • setSuccessAlert 代码是什么样的?
  • 它是一个 useState 钩子
  • 好的。 successAlert 状态在哪里/如何使用?
  • 我想出了一个独奏。它与警报无关

标签: javascript reactjs typescript firebase google-cloud-firestore


【解决方案1】:

当我为 firebase.firestore().collection("users") 声明一个变量而不是直接调用它时,它会起作用

所以现在代码如下所示:

const db = firebase.firestore().collection("users");

db.doc("123")
    .set({ test: 123})
    .then(() => {
        setSuccessAlert("Updated user");
    })
    .catch(() => {
        setErrorAlert("Could not update user");
    });

【讨论】:

  • 对我来说似乎很奇怪,我很好奇为什么会这样。不过很高兴您找到了解决方案,谢谢分享。
猜你喜欢
  • 2010-10-23
  • 1970-01-01
  • 2015-10-13
  • 2015-11-14
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 2017-11-17
相关资源
最近更新 更多