Javascript 从firestore获取未接受的响应
我现在正在学习如何与Firebase合作并做出反应 现在,我创建了一个“users”集合,并向其中添加了一个名为“one”的测试文档,如下所示。 然而,当我试图获取该文档时,我得到了许多数据,这些数据可能与该文档无关 我在这里创建文档并从中获取数据Javascript 从firestore获取未接受的响应,javascript,database,firebase,google-cloud-firestore,reactfire,Javascript,Database,Firebase,Google Cloud Firestore,Reactfire,我现在正在学习如何与Firebase合作并做出反应 现在,我创建了一个“users”集合,并向其中添加了一个名为“one”的测试文档,如下所示。 然而,当我试图获取该文档时,我得到了许多数据,这些数据可能与该文档无关 我在这里创建文档并从中获取数据 import { createContext } from "react"; import { db } from "../firebase"; const DbContext = createContext
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,
userName,
gender,
age,
phone,
country,
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>;
};
控制台显示
“DB”是我从firebase.js文件导出的firebase/firestore的名称您的
getFromDb
方法返回您正在打印的文档快照。如果要获取该对象内部的数据,需要按@AmitTiwary所述进行打印:
使用res.data()
从console.log中的res
获取数据(“res”+res.data())代码>
它应该根据返回一个json对象。如果需要数据,请使用res.data()从console.log中的res获取数据(“res”+res.data());它没有给我任何相关信息。我想获取文档架构并访问年龄、性别…@Shuki这样做吗?@Wytrzymały Wiktor No.我正在控制台中返回“res undefined”.res undefined
可能是因为您的文档one
在Firestore中不存在。尝试将其记录在useffect()
中,以查看是否存在这种情况。例如:if(res.exists()){console.log(“res exists”);}else{console.log(“res不存在”);}
useEffect(() => {
const getDetails = async () => {
try {
const res = await getFromDb(currentUser.email);
console.log("res", res);
} catch (error) {
console.error(error);
}
};
getDetails();
}, []);