firebase中的.add()firestore嵌套对象

时间:2018-03-01 12:14:27

标签: javascript firebase google-cloud-firestore

firebase文档说明了有关嵌套对象的更新:https://firebase.google.com/docs/firestore/manage-data/add-data#update_fields_in_nested_objects

我的结构

let ref = db.collections('projects').doc('blabla')
ref.set({
    objOfObjects: {}
})

我想在objOfObjects中添加一个带有随机生成的键的对象(值),就像常规的add函数一样。我无法将密钥绑定到对象的任何值。有没有办法添加到objOfObjects或者我是否需要重构我的数据?

1 个答案:

答案 0 :(得分:1)

没有内置函数为文档添加带有随机生成名称的字段。但您可以自己生成随机名称并添加它。您甚至可以使用collection.add()生成随机名称,因为(Doug says here)实际上还没有创建文档。

var newId = store.collection('projects').doc().id;

let ref = db.collections('projects').doc('blabla');
var updates = {};
updates[id] = { ... }
ref.update(updates)

这里使用的技巧:

  • 获取新的唯一ID,如前所述。
  • 使用[]表示法将该ID的值用作属性 name
  • 致电update()更新文件,而不是替换文件。