Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以获取使用batch()创建的文档的生成ID。使用Firestore设置?_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript 是否可以获取使用batch()创建的文档的生成ID。使用Firestore设置?

Javascript 是否可以获取使用batch()创建的文档的生成ID。使用Firestore设置?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,是否有一种方法可以为使用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()我可以添加带有.d

是否有一种方法可以为使用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()
的文档:

我可以获取添加到投票的文档的自动生成ID吗

更新:


Doug Stevenson是正确的-我可以在
votesRef.ID

访问ID当您在没有任何参数的情况下调用时,它将立即返回具有唯一ID的,而无需向数据库写入任何内容-ID在客户端生成。因此,如果需要该id,只需在该DocumentReference上使用id属性即可。在您编写该文档后,该id将在数据库中可见。

我也有类似的问题,我发现firestore的API发生了更改

我收到了一个类似以下代码的错误:

const postsRef = db.collection('posts').doc(postKey);
batch.set(postsRef, {title: 'Hello Again, World'});
我发现必要的更改是采用doc对象的
ref

const postsRef = db.collection('posts').doc(postKey).ref;

我希望这对你们大家都有帮助

为了在创建文档之前自动生成uid,您可以使用angularFireAuth的createID()函数,如下所示:

`


下面是Firestore web文档示例:
var newCityRef=this.afs.collection(“cities”).doc()给我一个错误“预期1个参数,但得到0”。这完全阻止了我继续前进。@FiringBlanks也许angular做了一些与标准javascript api不同的事情?@DougStevenson看起来他们把它作为了一个必需的参数。请参阅此处了解更多信息:@Edric您正在查看Firestore类上的doc()。我指的是CollectionReference上的doc()。可能重复的是。您必须在每个操作上实例化
ref
。换句话说,如果要在对象或数组上迭代,则必须在每次迭代时调用
doc()
const postsRef = db.collection('posts').doc(postKey).ref;
constructor(
    private angularFireStore: AngularFirestore,
   ) {}

 const batch = this.angularFireStore.firestore.batch();

 const autogenUid = this.angularFireStore.createId();
 const collectionReference = this.angularFireStore.collection
                            ('collection_name').doc(autogenUid).ref;

 const docData = {first_field:'value', second_field:'value2'};
 batch.set(collectionReference, docData);