javascript - 从 Firebase 查询字段时出现意外错误
问题描述
我正在使用 React.js 从 Firebase 查询文档中的字段。但是,当我尝试获取数据时,我不断收到错误消息。代码、Firestore 上的集合以及错误消息如下。如何正确查询特定数据字段而不会遇到此错误?
import React from 'react';
import styled from 'styled-components';
import { firestore } from '../../firebase/firebase.utils';
class Economics extends React.Component {
constructor() {
super();
this.state = {
name: firestore.collection('blog-categories').doc('8uVaHd22tT5oXSzpOOuj').get('name')
}
}
render() {
return (
<div>
hi
</div>
)
}
}
export default Economics;
解决方案
我认为这是您正在使用的 API 的正确参考。
当您向get
方法 API 输入参数时需要选项对象,因此当您在此处输入字符串“名称”时,您将收到此错误消息。
该方法是异步的,因此您必须从 DocumentSnapshot ( reference ) 对象中获取值,该对象作为 Promise 返回该方法的结果。
我希望它会有所帮助!
更新:根据要求,我正在添加示例:
Firestore 的集合包含具有值为“value1”的字段collection1
的文档:doc1
field1
var Firestore = require('@google-cloud/firestore');
var db = new Firestore();
var docRef = db.collection("collection1").doc("doc1");
docRef.get().then(docSnap => {
console.log(docSnap.data().field1);
console.log(docSnap.get("field1"));
});
如果你运行它,node
结果是:
value1
value1
推荐阅读
- python - subplot AttributeError:“AxesSubplot”对象没有属性“get_extent”
- python - Matplotlib-获取轴号以在对数图上正确显示
- html - 简单的问题 HTML/CSS 不起作用
- selenium - 如何处理点击我键入的网页上的动态链接
- tensorflow - 分布式 TensorFlow:谁应用参数更新?
- asp.net - 在 EF6 中插入嵌套集合时违反外键(数据库优先)
- java - 如何使用 Java 和 Spark SQL 打印数据集中的行内容?
- apache-storm - 具有一个工作节点的 Apache Storm 中的并行性
- asp.net - 尝试与本地服务器进行 ro 连接时 SQL Server 连接错误?
- postgresql - 如何使用 JOOQ 使用 H2 为 PostGres 生成存根 - ENUM 类型