React Native 尝试从firestore读取并记录数据

2ul0zpep  于 2023-03-31  发布在  React
关注(0)|答案(1)|浏览(144)

我试图从集合中查询文档并将其记录到终端。我一直得到错误FirebaseError:collection()的第一个参数应为CollectionReference、DocumentReference或FirebaseFirestore这是我的代码:

import { collection} from 'firebase/firestore';
import {db} from '../../firebase/firestore';
 useEffect(() => {
     const max = collection(db,'UsersData')
     .where('Reps','==',4)
     .get()
     .then(querySnapshot => {
        querySnapshot.forEach(documentSnapshot => {
            console.log('User ID: ', documentSnapshot.data());
          });
     });
    
     return () => max();
   }, []);

我尝试在集合之前添加firestore(),就像它出现在文档中一样,但仍然收到相同的错误:

useEffect(() => {
     const max = firestore()
     .collection(db,'UsersData')
     .where('Reps','==',4)
     .get()
     .then(querySnapshot => {
        querySnapshot.forEach(documentSnapshot => {
            console.log('User ID: ', documentSnapshot.data());
          });
     });
rslzwgfq

rslzwgfq1#

您应该传递集合的名称,而不是整个db对象。
你可以试试下面的代码:

import { collection } from 'firebase/firestore';
import { db } from '../../firebase/firestore';

useEffect(() => {
  const max = collection(db, 'UsersData')
    .where('Reps', '==', 4)
    .get()
    .then((querySnapshot) => {
      querySnapshot.forEach((documentSnapshot) => {
        console.log('User ID: ', documentSnapshot.data());
      });
    });

  return () => max();
}, []);

您不需要在collection()之前添加firestore(),因为collection()已经是Firestore模块的导出函数。

相关问题