【问题标题】:NodeJS, Firestore get fieldNodeJS,Firestore 获取字段
【发布时间】:2019-03-12 02:14:27
【问题描述】:

我在我的 nodejs 聊天机器人上设置了 firestore。 并且它成功地将 Facebook 用户 ID 复制到 .doc 名称, 并在firestore中的用户ID下设置用户名和其他信息

我该如何检索这个“字段”名称 显示给用户。

我目前拥有的是这个

 const givename = db.collection('users').doc(''+ sender_id).get("name");  
 
 

firebase 怎么什么也没返回。

我在网上看了很多关于如何返回字段的信息。但运气不佳。 有什么建议吗?

【问题讨论】:

    标签: javascript node.js firebase google-cloud-firestore


    【解决方案1】:

    另一种方式是:

    const givename = await db.collection("users").doc("YOUR DOCUMENT NAME").get();
    
    console.log(givename.data().name);
    

    请记住将此代码放在async 函数中,因为我们在这里使用await

    【讨论】:

      【解决方案2】:

      调用get() 不会立即返回数据,因为数据是异步加载的。相反,它返回一个承诺,一旦加载数据就会解决。这意味着您可以使用await(如弗朗西斯科的回答)或(如果await 不可用)实现then() 方法:

      db.collection('users').doc(''+ sender_id).get().then(function(doc) {
        console.log(doc.data().name);
      });
      

      需要注意的一个常见陷阱:doc.data() 仅在回调内部可用,

      【讨论】:

      • 感谢您的评论。还是有点糊涂。我得到 NaN 作为回应。和 firebase 日志没有显示任何关于名称的信息。这很奇怪。这意味着什么?
      • 编辑。从头开始。它是。然而。它现在将其打印在日志中,但不允许 const givename = "code here" 工作。或者这是不可能的?
      • 我不知道最后一点是什么意思。但正如我在回答中所说:来自doc.data() 的数据仅在then() 回调中可用。有关这种编程方式的更多信息,请参阅medium.com/google-developers/…,这在现代 JavaScript 中非常普遍。
      • 啊,我明白了,如果我想让我的代码触发它需要在 then() 中的名称,那么我可以在我想要的时候使用 const 来调用这个函数......真是太糟糕了.我现在解决这个问题,看看我是否能找到解决方法:)
      • await 是 ES2017 (iirc) 中引入的关键字。它在 Node 8 及更高版本中可用。如果您想尝试使用它,我建议您对“在 node.js 中使用 await”进行一些搜索,因为它们可能会找到比我可以快速分享的更好的解释。
      【解决方案3】:

      尚未使用 Firestore,但从阅读 https://firebase.google.com/docs/firestore/query-data/get-data

      类似下面的东西应该可以工作(未经测试):

      const userRef = db.collection("users").doc("1234")
      const userDoc = await userRef.get()
      const {name} = userDoc.data()
      console.log(name)
      

      【讨论】:

      • 不幸的是,这似乎无法解决问题。获取一堆 userDoc.data 不是函数
      • userDoc.data 不是函数
      猜你喜欢
      • 2018-07-07
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多