Javascript 使用QuerySnapshot增加字段值

Javascript 使用QuerySnapshot增加字段值,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,我试图对集合执行查询,如果文档存在,我想增加一个计数器。这是用于跟踪访问次数。不幸的是,下面的代码不起作用,我不确定我所尝试的是否可行。我正在尽量减少Firestore的读取 db=firebase.firestore(管理员); var users=db.collection(“用户”); var query=用户 .where(“userid”,“userid=”,userid) .get() .then(函数(querySnapshot){ 如果(querySnapshot.size>0

我试图对集合执行查询,如果文档存在,我想增加一个计数器。这是用于跟踪访问次数。不幸的是,下面的代码不起作用,我不确定我所尝试的是否可行。我正在尽量减少Firestore的读取

db=firebase.firestore(管理员);
var users=db.collection(“用户”);
var query=用户
.where(“userid”,“userid=”,userid)
.get()
.then(函数(querySnapshot){
如果(querySnapshot.size>0){
var docRef=querySnapshot.docs[0];
//不起作用
常量增量=firebase.firestore.FieldValue.increment(1);
docRef.update(“accessCount”,增量);
//也不起作用
var theDoc=db.collection(“用户”).doc(docRef.id);
console.log(theDoc);
常量增量=firebase.firestore.FieldValue.increment(1);
文档更新(“访问计数”,增量);
}

})
问题从这里开始:

var docRef = querySnapshot.docs[0];
这里得到的不是文档引用,而是文档快照。当您稍后调用
docRef.update()
时,这将不起作用,因为a没有
update
方法。实际上,您应该在那里得到一条错误消息,这也会阻止其余代码运行

像这样的方法应该会奏效:

if (querySnapshot.size > 0) {
  var docRef = querySnapshot.docs[0].ref;
  docRef.update("accessCount", firebase.firestore.FieldValue.increment(1));
}