【问题标题】:Query FireStore Collection for document Key查询文档密钥的 FireStore 集合
【发布时间】:2019-03-16 11:23:53
【问题描述】:

我将集合中的文档键设置为 userId,现在我想在快照中获取该文档以获得实时结果:

Ref = firestore().collection('Ref');
Ref.where("[.key]","==",this.id).onSnapshot(snap => {
      if (!snap.empty) {
        snap.docChanges().forEach(change => {
          if (change.type === "modified") {
            // update model here for charts
            this.user = change.doc.data()
          }
          if (change.type === "added") {
            // create a new chart
            this.user = change.doc.data()

          }

        })
      }
    })

我试过 key .key [.key] 没有任何效果。我想在其用户登录时查看此文档的更改。

【问题讨论】:

    标签: node.js google-cloud-firestore


    【解决方案1】:

    如果您想根据它的 id 获取元素,则无需使用查询,只需获取对该文档 id 的引用即可。所以请更改以下代码行:

     Ref.where("[.key]","==",this.id).onSnapshot(/* ... */)
    

     Ref.doc(key).onSnapshot(/* ... */)
    

    编辑:

    var doc = db.collection('Ref').doc(key);
    var observer = doc.onSnapshot(docSnapshot => {
      console.log(`Received doc snapshot: ${docSnapshot}`);
      // Get data from the docSnapshot object
    }, err => {
      console.log(`Encountered error: ${err}`);
    });
    

    【讨论】:

    • Ref 是如何定义的?
    • Ref 是一个集合 firestore().collection('Ref')
    • 哦,我明白了。请参阅我更新的答案。应该只是.doc(key)。是这样的吗?
    • 几乎snap.docChanges is not a function 然后我如何监听更改事件?
    • 请再次查看我的更新答案。现在可以用了吗?
    猜你喜欢
    • 2020-07-26
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 2021-08-12
    • 1970-01-01
    • 2018-06-19
    • 2018-05-09
    相关资源
    最近更新 更多