【发布时间】:2018-03-26 22:28:20
【问题描述】:
有没有一种方法可以让我为使用 Firestore 作为批处理的一部分创建的文档获取自动生成的 ID?
当使用.add()时,我可以很容易地得到一个ID:
db.collection('posts')
.add({title: 'Hello World'})
.then(function(docRef) {
console.log('The auto-generated ID is', docRef.id)
postKey = docRef.id
});
使用.batch() 我可以添加一个带有.doc() 和.set() 的文档:
const batch = db.batch();
const postsRef = db.collection('posts').doc(postKey);
batch.set(postsRef, {title: 'Hello Again, World'});
const votesRef = db.collection('posts').doc(postKey)
.collection('votes').doc();
batch.set(votesRef, {upvote: true})
batch.commit().then(function() {
});
我可以得到添加到votes的文档的自动生成ID吗?
更新:
Doug Stevenson 是正确的 - 我可以通过 votesRef.id 访问 ID
【问题讨论】:
-
是的。您必须在每个操作上实例化您的
ref。换句话说,如果你正在迭代一个对象或数组,你必须在每次迭代时调用doc()。
标签: javascript firebase google-cloud-firestore