首页 > 解决方案 > 无法从 React 应用程序获取 Firestore 数据

问题描述

以下是我对 Firestore 数据库的安全规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

下面是我获取数据的代码:

fetchUsers=async()=>{
        const db=firebase.firestore();
        const response=db.collection('users');
        const data=await response.get();
        data.doc.forEach(item=>{console.log(item)})
    }

users是 firestore 中集合的名称。它有一份文件。

但我在控制台上收到错误:

Cannot read forEach property of undefined

我错过了什么?请帮助我找到上述问题的解决方案。

谢谢你!

标签: reactjsfirebasegoogle-cloud-firestore

解决方案


您必须使用以下任一

import { useParams } from 'react-router-dom'

function YYY(props){
    const { id } = useParams();
    db.collection('users').doc(id).get().then((doc) =>{console.log(doc.data())})
}

或者只是使用onSnapshot

db.collection('users').onSnapshot((snapshot) => {
    snapshot.docs.map((doc) => {
        console.log(doc.data());
    }
}

推荐阅读