从 Firebase 获取数据(React、Axios)

Posted

技术标签:

【中文标题】从 Firebase 获取数据(React、Axios)【英文标题】:Get Data from Firebase (React, Axios) 【发布时间】:2021-02-08 17:17:33 【问题描述】:

我得到了 firebaseConfig.js

import firebase from 'firebase/app'
import 'firebase/firestore'

const firebaseConfig = 
    apiKey: "somekey",
    authDomain: "somekey",
    databaseURL: somekey",
    projectId: "somekey",
    storageBucket: "somekey",
    messagingSenderId: "somekey",
    appId: "appIdKey"
  ;

  firebase.initializeApp(firebaseConfig)    
  const db = firebase.firestore()    
  const TestRef = db.collection('myDB')

  export TestRef

现在我得到了组件 index.js

import ToDosRef from './firebase'
import axios from 'axios';

const useAPI = endpoint => 
  const [data, setData] = useState([])

  useEffect(() => 
    getData();
  ,[])

  const getData = async() => 
  
    const response = await axios.get(endpoint)
    
    console.log(response.data())

    setData(response.data)
  

  return data


const App = () => 
  ....
  const savedTodos = useAPI(ToDosRef)
  
  return(
    <div>
    </div>
  )


ReactDOM.render(
    <App />,
    document.getElementById('root')
)

当我收到'Request failed with status code 404' 时,我认为我对axios.get(endpoint) 做错了什么

【问题讨论】:

您请求的端点不正确 你能告诉我如何以正确的方式做到这一点吗? 您正在访问 getData() 中的端点,该端点在默认状态下为空。请检查 你能给我看看吗? 您的端点 url 应该类似于 axios.get('/user?ID=12345') .then(function (response) console.log(response); ) .catch(function (错误) console.log(error); ); 【参考方案1】:

您的端点网址应该类似于

axios.get('/user?ID=12345').then(function (response)  
  console.log(response); 
) .catch(function (error)  
  console.log(error); 
);

【讨论】:

【参考方案2】:

我找到了一些博客并按照以下方式进行操作,现在正在工作:

firebaseConfig.js我已添加:

const ToDosRef = axios.create(baseURL: 'https://firestore.googleapis.com/v1/projects/project_id/databases/(default)/documents')    
export ToDosRef 

然后index.js:

  const getData = async() => 

    const fbData = await endpoint.get(`/mDocumentName`)
    .then(response =>  
         console.log(response.data);
         console.log(response.data.documents);

        response.data.documents.forEach(x => 
          console.log(x);
          console.log(x.fields.id);
        )

       )
       .catch(error =>  
           console.log(error); 
       );
  

【讨论】:

以上是关于从 Firebase 获取数据(React、Axios)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 React JS 中的 firebase 文档的所有子集合中获取数据? [复制]

无法从 React-Native-Firebase(v6) Firestore 获取数据:未定义不是函数(靠近 '...this._firestore.native.collectionGet...'

渲染从 Firebase Firestore 映射的 React 组件

使用 react-redux-firebase 消费云功能 - React JS

无法使用 this.state.data.map() 在 react native firebase 中显示获取的数据

Firebase React Native获取数据