【问题标题】:getting unexcepted response from firestore从 Firestore 获得异常响应
【发布时间】:2021-06-19 00:30:02
【问题描述】:

这些时候我正在学习如何使用 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,
      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>;
};

我在这里尝试获取并打印我正在获取的数据

  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 的名称

【问题讨论】:

  • 如果要数据,使用res.data()从console.log中的res获取数据("res "+res.data());
  • 它没有给我任何相关信息。我想获取文档架构并可以访问年龄、性别...

标签: javascript database firebase google-cloud-firestore reactfire


【解决方案1】:

您的getFromDb 方法返回您正在打印的文档快照。如果您想在该对象中获取数据,则需要按照@AmitTiwary 所述进行打印:

使用res.data()res获取数据到console.log("res "+res.data());

应该根据DocumentSnapshot返回一个json对象

【讨论】:

  • @Shuki 这个answer your question?
  • @Wytrzymały Wiktor 不。我在控制台中返回“未定义的”...
  • res undefined 可能会出现,因为您的文档 one 在您的 Firestore 中不存在。尝试将其登录到您的 useEffect() 以查看是否是这种情况。例如: if(res.exists()){ console.log(“Res exists”); }else{ console.log(“Res 不存在”); }
  • @WytrzymałyWiktor 谢谢!!我没有使用数据作为方法
猜你喜欢
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
相关资源
最近更新 更多