问题描述
这些时候我正在学习如何使用 Firebase 并做出反应 现在,我创建了一个“用户”集合并向其添加了一个名为“one”的测试文档,如下所示。 但是,当我尝试获取此文档时,我得到了许多可能与该文档无关的数据。
import { createContext } from "react";
import { db } from "../firebase";
const DbContext = createContext();
export const useDb = () => {
return useContext(DbContext);
};
export const DbProvider = ({ children }) => {
//creating "one" doc
const uploadToDb = (
email,photo,userName,gender,age,phone,country,city
) => {
return db.collection("users").doc("one").set({
photo,city,});
};
//get data from doc
const getFromDb = (email) => {
var dbRef = db.collection("users").doc("one");
return dbRef.get();
};
const value = { uploadToDb,getFromDb };
return <DbContext.Provider value={value}>{children}</DbContext.Provider>;
};
useEffect(() => {
const getDetails = async () => {
try {
const res = await getFromDb(currentUser.email);
console.log("res",res);
} catch (error) {
console.error(error);
}
};
getDetails();
},[]);
控制台显示
“DB”是我从 firebase.js 文件导出的 firebase/firestore 的名称
解决方法
您的 getFromDb
方法返回您正在打印的文档快照。如果要获取该对象内的数据,则需要按照@AmitTiwary 所述进行打印:
使用res.data()
从res
中的console.log("res "+res.data());
获取数据