2017-10-15 14 views
3

Firestoreを使用してバッチの一部として作成されたドキュメントの自動生成IDを取得する方法はありますか? .add()を使用している場合Firestoreを使用してbatch()で作成されたドキュメントの生成IDを取得できますか?

私は簡単にIDを取得することができます:

db.collection('posts') 
    .add({title: 'Hello World'}) 
    .then(function(docRef) { 
    console.log('The auto-generated ID is', docRef.id) 
    postKey = docRef.id 
}); 

私は.doc().set()に文書を追加することができ.batch()を使用する:

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() { 
}); 

は私がの自動生成IDを取得することができますvotesに追加された文書ですか?

更新:

ダグ・スティーブンソンが正しいか - 私はあなたが引数なしdoc()を呼び出すと、それはすぐに書き込みせずに、一意のIDを持っているDocumentReferenceを返しますvotesRef.id

答えて

5

でIDにアクセスすることができます何かがデータベースに - idはクライアント上で生成されます。したがって、そのidを必要とする場合は、単にそのDocumentReferenceのidプロパティを使用します。このIDは、その文書を書いた後にデータベースに表示されます。

+1

私はFirestoreのWebドキュメントの例に従っています: 'var newCityRef = this.afs.collection(" cities ").doc();'私は "1つの引数が必要ですが、0を返します。これは私が完全に前進することを完全に阻止している。 – FiringBlanks

+0

@FiringBlanks角度が標準のjavascript APIと異なる場合がありますか? –

+0

@DougStevenson彼らはそれが必要なパラメータになったようです。詳細はこちらをご覧ください:https://github.com/firebase/firebase-js-sdk/blob/d43d461aaa2496d4cd12fd593373f6dad214716f/packages/firestore/src/api/database.ts#L397-L408 – Edric

関連する問題