1

文書内のデータ(Firestoreのアーティストコレクション内のデータ)が変更された後、Google Cloud機能に別のコレクション内のすべての文書を検索させる機能を記述しようとしています変更されたドキュメント(「アーティスト」コレクション内の)を指す参照フィールド( 'アーティスト')を有する「ショー」(show)Firestore文書の参照フィールドを照会

参照フィールドを照会する方法を理解できないようです。 Iveはアーティスト文書のID、パス、完全なURLの使用からすべてを試しました。しかし、私はGoogleのクラウド機能コンソールにエラーが表示されます。私はこのような直接のparamsからARTISTIDになるだろう

exports.updateReferenceArtistFields = functions.firestore 
    .document('artists/{artistId}').onWrite(event => { 
    var artistRef = event.data.data(); 
    var artistId = artistRef.id; 
    var ShowsRef = firestore.collection('shows'); 
    var query = ShowsRef.where('artist', '==', artistId).get() 
     .then(snapshot => { 
      snapshot.forEach(doc => { 
       console.log(doc.id, '=>', doc.data()); 
      }); 
     }) 
     .catch(err => { 
      console.log('Error getting documents', err); 
     }); 
}); 

答えて

1

var artistId = event.params.artistId; 
ここ
Error getting documents Error: Cannot encode type ([object Undefined]) to a Firestore Value 

は私のコードのサンプルです

例:

exports.updateReferenceArtistFields = functions.firestore 
    .document('artists/{artistId}').onWrite(event => { 
    var artistId = event.params.artistId; 
    var showsRef = firestore.collection('shows'); 
    var query = showsRef.where('artist', '==', artistId).get() 
     .then(snapshot => { 
      snapshot.forEach(doc => { 
       console.log(doc.id, '=>', doc.data()); 
      }); 
     }) 
     .catch(err => { 
      console.log('Error getting documents', err); 
     }); 
}); 
関連する問題