提问者:小点点

如何将具有自定义ID的文档添加到firestore


是否有机会使用自定义生成的id(而不是firestore引擎生成的id)将文档添加到firestore集合?


共3个答案

匿名用户

要使用自定义ID,您需要使用。设置,而不是。添加

这将创建一个ID为"LA"的文档:

db.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
})

这是取自这里的官方文件

匿名用户

如果你使用angularfire,

class Component{
  constructor(private afs: AngularFireStore) {} // imported from @angular/fire/firestore

  addItem() {
    this.afs.collection('[your collection]').doc('[your ID]').set({your: "document"});
  }
}

匿名用户

为了扩展已接受的答案,如果您希望您的客户端在推送到Fi还原之前为文档生成一个随机ID(假设在AngularFire2之外存在相同的createId()函数)

const newId = db.createId();
db.collection("cities").doc(newId).set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
})

这对于在另一个文档中将ID设置为引用字段非常有用,即使在Firestore保存任何内容之前也是如此。如果您不需要立即使用保存的对象,这将通过不让您等待ID来加快进程。set()调用现在与您在Angular中可能使用的管道是异步的

注意,我没有将id:newId放在set对象中,因为Firestore默认情况下不会将id保存为文档中的字段