首页 > 解决方案 > 从 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;

在此处输入图像描述 在此处输入图像描述

标签: javascriptreactjsfirebasegoogle-cloud-firestore

解决方案


我认为是您正在使用的 API 的正确参考。

当您向get方法 API 输入参数时需要选项对象,因此当您在此处输入字符串“名称”时,您将收到此错误消息。

该方法是异步的,因此您必须从 DocumentSnapshot ( reference ) 对象中获取值,该对象作为 Promise 返回该方法的结果。

我希望它会有所帮助!

更新:根据要求,我正在添加示例:

Firestore 的集合包含具有值为“value1”的字段collection1的文档:doc1field1

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

推荐阅读