javascript - 写入 Firebase Cloud Firestore

标签 javascript firebase google-cloud-firestore

在 JavaScript 中写入 firebase cloud firestore 是异步的吗? 如果是的话,有什么方法可以处理吗?

我的程序应该将一个值更新到数据库中,然后很快将该值提取出来,以对其执行某些操作。

大多数时候,都会输出正确的值,但是,有时输出的是之前的值,但是当刷新页面,再次从数据库中读取相同的值时,就会输出正确的值。

因此,我假设问题一定是写入数据库是异步的,就像读取数据库一样。

“.then”似乎不起作用。

这是我的代码的简化版本:

function updateDB{
 db.collection("rooms").doc("roomsDoc").update({
   roomTime: timeInput  //timeInput is a variable defined (not shown in code here)              
  }).then
  {
   readDB();
  }
}

function readDB(){
   db.collection("rooms").doc("roomsDoc").get().then(function(doc) {
     console.log(doc.data().roomTime);
   });
}

console.log 有时会输出错误的值。

最佳答案

是的,它是异步的。

处理您遇到的问题的一个好方法是async/await

首先,您需要在异步函数中创建您正在执行的函数

然后做这样的事情

async function FunctionName(){
    // do some initial stuff
    await write to the database
    // do some intermediate stuff
    await read from the database
}

关于javascript - 写入 Firebase Cloud Firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61037145/

相关文章:

firebase - Flutter Firebase 远程配置类中没有虚拟方法 isDeveloperModeEnabled()Z .../FirebaseRemoteConfigSettings

ios - 如何纠正在 "self' 调用或赋值给 'self.init' 之前使用 'self' 的错误?

firebase - 如何在Flutter Firestore中查询2个文档并以列表形式返回?

javascript - mongodb的mapreduce函数

javascript - KnockoutJS 关联数组和选择列表

ios - 无法接收 FCM(推送通知 iOS)

firebase - Firestore 中数组的存储大小限制是什么?

javascript - 当高度变大时 Viewwidth 变大

javascript - clonoNode() Dom 方法无法克隆给定的 Xml Doc 对象

javascript - 尝试运行我的应用程序时收到以下警告 : Possible Unhandled Promise Rejection (id:1)