将状态发布到Firebase
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将状态发布到Firebase相关的知识,希望对你有一定的参考价值。
我正在尝试将name
从状态发布到Firebase,并保持状态405。
我尝试更改导入和发送数据的方式,但是我无法弄清楚哪里出了问题。
Index.js:
import React, { Component, Fragment, useState } from "react";
import { render } from "react-dom";
import axios from "axios";
import firebase from "firebase";
import { firebaseConfig } from "./firebase";
import Header from "./components/Header";
import "./style.css";
const App = () => {
const [name, setName] = useState("Ryan");
const handleClick = e => {
console.log("Working");
axios.post(
"https://lq-time-tracking.firebaseio.com/",
{ name },
{ firebaseConfig }
);
};
return (
<div>
<Header name={name} handleClick={handleClick} setName={setName} />
</div>
);
};
render(<App />, document.getElementById("root"));
Header.js:
import React from "react";
import styled from "styled-components";
import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom";
import Home from "./Home";
import "../style.css";
const Header = ({ name, handleClick, setName }) => {
return (
<Router>
<nav className="navbar">
<Link className="nav-item" to="/contact">
Contact
</Link>
<Link className="nav-item" to="/about">
About
</Link>
<Link className="nav-item" to="/home">
Home
</Link>
</nav>
<Switch>
<Route
exact
path="/home"
render={(...props) => (
<Home name={name} handleClick={handleClick} setName={setName} />
)}
/>
</Switch>
</Router>
);
};
export default Header;
Home.js:
import React, { Fragment } from "react";
const Home = ({ name, setName, handleClick }) => {
return (
<>
<h1>This is my State: {name}</h1>
<input type="text" onChange={e => setName(e.target.value)} />
<button type="Submit" onClick={e => handleClick(e)}>
Submit
</button>
</>
);
};
export default Home;
答案
[如果我没有记错,因为您使用https://lq-time-tracking.firebaseio.com
(这是Firebase实时数据库URL),所以我了解到您正在通过向[[ C0] URI。
这将不起作用,因为如name
中所述,您“需要将.json附加到URL的末尾”。
此外,在您的情况下,我认为您应该使用POST
,因为您只想向Firebase数据库写入一个字符串。
以上是关于将状态发布到Firebase的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Firebase 获取数据到 Recyclerview 中的片段?