我可以在云功能中使用通配符作为管理员查询firestore吗?

时间:2018-04-19 04:36:25

标签: firebase google-cloud-firestore google-cloud-functions

exports.updateRelatedCards = functions.firestore
  .document('topic/{newTopic}')
  .onWrite((snap, context) => {
    const newTopic = snap.data();

    // search for the recieved title in a 'relatedCards' subcollection
    return firestore
      .collection(`card/{anyCard}/relatedCards`)
      .where('title', '==', newTopic.title)
      .get()
      .then(coll => {
        const list = coll.docs.map(doc => doc.data());
        return list ? list : 'nolist';
      })
      .then(list => console.log('list', list))
      .catch(error => console.log('error', error));
  });

是否可以在云函数中具有通配符的firestore查询中使用.where()

尽管存在数据,但我仍然会得到一个空阵列,我不明白我是在做什么,也可能是不可能的。似乎没有提及在admin firestore docs上查询https://firebase.google.com/docs/reference/admin/node/admin.firestore

1 个答案:

答案 0 :(得分:2)

您无法在任何上下文或任何SDK中使用通配符查询Firestore。这是无效的:

firestore.collection(`card/{anyCard}/relatedCards`)

如果您要引用文档或集合,则需要提供实际的实际路径。你不能在路径的任何部分用通配符。

如果您对已知的集合和文档尝试更简单的查询,它将正常工作。