Я использую хуки React + firebase.
В firebase я создал коллекцию под названием «проекты».
Когда я пытаюсь консольно регистрировать данные с помощью:
const Dashboard = () => {
const { firebase } = useContext(GlobalContext);
return (
<div className = "container">
{console.info(firebase.db.collection("projects"))}
</div>
);
};
Я получаю следующий объект:
Не должны видеть мои данные?
Ниже приведены настройки моей firebase и контекста.
firebase.js
import app from "firebase/app";
import "firebase/auth";
import "firebase/firebase-firestore";
const config = {//mydata}
class Firebase {
constructor() {
app.initializeApp(config);
this.auth = app.auth();
this.db = app.firestore();
}
}
export default new Firebase();
контекст.js
import React, { useReducer } from "react";
import { projectReducer } from "./reducers";
import firebase from "../components/firebase/firebase";
export const GlobalState = props => {
const [projects, setProjects] = useReducer(projectReducer, []);
return (
<GlobalContext.Provider
value = {{
projects,
firebase
}}
>
{props.children}
</GlobalContext.Provider>
);
};





Ключ того, как вы взаимодействуете с Firestore в своем коде, выглядит следующим образом:
firebase.db.collection("projects")
Этот код создает ссылку на коллекцию projects в Firestore. Он нет еще не извлекает какие-либо данные из базы данных.
Чтобы получить данные, вам нужно прикрепить прослушиватель к коллекции. Из Документация Firestore по получению документов из коллекции:
db.collection("cities").where("capital", "= = ", true) .get() .then(function(querySnapshot) { querySnapshot.forEach(function(doc) { // doc.data() is never undefined for query doc snapshots console.info(doc.id, " => ", doc.data()); }); }) .catch(function(error) { console.info("Error getting documents: ", error); });
Вам нужно будет сделать что-то подобное в вашем коде.
Обычно в проектах React вы сохраняете данные в состоянии компонента, вызывая setState(...) в обратном вызове then(), а затем визуализируете содержимое из состояния в вашем JSX.