将状态发布到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 查询

firebase 的短信代码不匹配

如何从 Firebase 获取数据到 Recyclerview 中的片段?

从 Android Studio 中的片段将数据写入 Firebase

无法将数据添加到 Firebase 中的不同节点

ReactFire - 将 Firebase 绑定到 React 状态时,获取“对象作为 React 子项无效”