更新 firestore 中的嵌套变量字段
Update nested variable field in firestore
假设一个 firestore 数据库 填充了这个结构,是事件和用户集合:
Firestore
-Events
-1612483200
-peopleSignedDict
-Alex
-state: 1
-Mark:
-state: 0
-1606172400
-peopleSignedDict
-Users
-1zyXSMMlGiaUusUNLQWAxfsI4pM2
-name: Alex
-4zyXSMMlGiaUusUNLQWAxfsI4pM2
-name: Mark
我正在使用 Node.js 并尝试更新 Events.1612483200.peopleSignedDict.Alex.state
以将状态从 1 更改为 0。为了实现它,我正在尝试做:
var randomName = getRandomDBName();
db.collection('Events').doc('1612483200').set({
'peopleSignedDict.'+randomName+'.state': 0
});
但是我的 IDE (PhpStorm) 对我大喊大叫,告诉我这个语法无效,这应该是解决这个问题的正确语法?
有几种方法可以做到这一点。
我最喜欢的是先在一个单独的变量中构造键,然后在集合中使用它:
let randomName = getRandomDBName();
let updates = {};
updates['peopleSignedDict.'+randomName+'.state'] = 0;
db.collection('Events').doc('1612483200').update(updates);
但一个常见的(更短的)替代方案是:
let randomName = getRandomDBName();
db.collection('Events').doc('1612483200').update({
[`peopleSignedDict.${randomName}.state`]: 0;
});
实际上我不确定最后一个片段中是否需要 []
,所以如果您有问题,请在没有它们的情况下尝试并告诉我。
假设一个 firestore 数据库 填充了这个结构,是事件和用户集合:
Firestore
-Events
-1612483200
-peopleSignedDict
-Alex
-state: 1
-Mark:
-state: 0
-1606172400
-peopleSignedDict
-Users
-1zyXSMMlGiaUusUNLQWAxfsI4pM2
-name: Alex
-4zyXSMMlGiaUusUNLQWAxfsI4pM2
-name: Mark
我正在使用 Node.js 并尝试更新 Events.1612483200.peopleSignedDict.Alex.state
以将状态从 1 更改为 0。为了实现它,我正在尝试做:
var randomName = getRandomDBName();
db.collection('Events').doc('1612483200').set({
'peopleSignedDict.'+randomName+'.state': 0
});
但是我的 IDE (PhpStorm) 对我大喊大叫,告诉我这个语法无效,这应该是解决这个问题的正确语法?
有几种方法可以做到这一点。
我最喜欢的是先在一个单独的变量中构造键,然后在集合中使用它:
let randomName = getRandomDBName();
let updates = {};
updates['peopleSignedDict.'+randomName+'.state'] = 0;
db.collection('Events').doc('1612483200').update(updates);
但一个常见的(更短的)替代方案是:
let randomName = getRandomDBName();
db.collection('Events').doc('1612483200').update({
[`peopleSignedDict.${randomName}.state`]: 0;
});
实际上我不确定最后一个片段中是否需要 []
,所以如果您有问题,请在没有它们的情况下尝试并告诉我。