【发布时间】:2019-01-12 13:36:09
【问题描述】:
我想获取一个字段的值,然后在它满足条件时进行更新。我想了解哪种方法最好。比如我设置了这个文档(取自here):
db.collection('cities')
.doc('LA')
.set({
name: 'Los Angeles',
state: 'CA',
country: 'USA',
numberOfRestaurant: 100
});
我想将numberOfRestaurant 的值减1。假设这是在一个函数内部。
db.collection('cities')
.doc('LA')
.get()
.then(function(doc) {
var numberOfRestaurant = doc.get('numberOfRestaurant');
if (numberOfRestaurant > 0)
db.collection('cities')
.doc('LA')
.update({ numberOfRestaurant: numberOfRestaurant - 1 });
else
alert("Can't set negative number");
});
这样我调用了 db.collection 2 次。是否可以使用querySnapshot 对象来更新值而无需再次调用 db.collection。像这样的东西(我知道这种方式会出错):
db.collection('cities')
.doc('LA')
.get()
.then(function(doc) {
var numberOfRestaurant = doc.get('numberOfRestaurant');
if (numberOfRestaurant > 0)
doc.update({ numberOfRestaurant: numberOfRestaurant - 1 });
else
alert("Can't set negative number");
});
从Api Reference .get() 返回DocumentSnapshot。
谢谢
【问题讨论】:
标签: javascript firebase google-cloud-firestore