在Firestore文档中查询引用字段

3
我正在尝试编写一个函数,它会在文档中的数据更改后(Firestore“artists”集合内),让Google Cloud Functions查找另一个集合(“shows”)中所有具有指向刚刚更改的文档(“artists”集合内的文档)的引用字段(“artist”)的文档。
我似乎无法弄清楚如何查询引用字段。我已经尝试了从使用艺术家文档的ID、路径到完整的URL等各种方法。但我在Google Cloud Function控制台中收到了错误信息。
Error getting documents Error: Cannot encode type ([object Undefined]) to a Firestore Value

以下是我的一段代码示例:
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个回答

1
我会直接从参数中获取artistId,方法如下:
var artistId = event.params.artistId;

例子:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接