FireStore:如何使用云函数更新firestore中对象数据结构中的Field

时间:2018-04-05 04:04:20

标签: javascript firebase google-cloud-firestore

enter image description here

我以对象形式存储数据,并且我想使用云函数将诸如“Status”之类的字段添加或更新到每个对象中,例如invitee1和invitee2。我尝试了但是它在所有对象的末尾更新。如何使用云功能或Firestore触发器在每个对象的末尾添加字段。当我使用更新语句

时,我收到此类错误
var dbref = db1.collection('deyaPayUsers').doc(sendauthid).collection('Split').doc(sendauthid).collection('SentInvitations').doc(senderautoid);
var msg1 = receiverph +"" + status +" to pay $"+document.Amount;
var fulldoc = dbref.get()
                   .then(doc => {
if(!doc.exists){
                   console.log('No such document');
                   }else{
                   console.log('Document data :',doc.data());
                       d1 = doc.data();
                       console.log("d1 is"+d1);
for(var k in d1){
var p = d1[k].PhoneNumber;
                                      console.log("ivitees phone"+p);
if(receiverph == p)
                                      {
                                           console.log("p"+PhoneNumber);


                                           console.log("the phonenumber matches");
var updated =  dbref.p.update({"Status":status});// **i got error here like "update is not define"**

我尝试了另一种更新方式

var updated = dbref.d1 [k] .PhoneNumber.update({“Status”:status}); //这里我收到的错误如“无法读取未定义的invitee1属性”

如何解决该错误。

1 个答案:

答案 0 :(得分:0)

您不能直接更新该字段。这样做:

参考文件,

for(var k in d1) {
  if (receiverph  === d1[k].PhoneNumber) {
    doc.ref.update({
      [`${k}.Status`]: status
    })
  }
}