Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从firestore获取未接受的响应_Javascript_Database_Firebase_Google Cloud Firestore_Reactfire - Fatal编程技术网

Javascript 从firestore获取未接受的响应

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

我现在正在学习如何与Firebase合作并做出反应 现在,我创建了一个“users”集合,并向其中添加了一个名为“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,
      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();
  }, []);