質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

354閲覧

Firestoreにデータが入らない

tomsuma

総合スコア38

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/09/09 06:30

ボタンを押してもfirestoreにデーが入らず困っています。
僕のレベルをわかってもらうために言わせてもらうとかなりの初心者です。

TextInpiut には入力した値が入ってました

ボタンの
onInputをonSubmit onClickにした利したのですがダメでした、、

足りないものがあれば遠慮なくお願いします、、

create画面

1import React, { useState, useReducer, useEffect} from 'react'; 2import TextInput from "../../templates/UIkit/TextInput"; 3import {saveHandsOn} from "../operations/index"; 4import handsOnReducer from "../reducers" 5import Button from '@material-ui/core/Button'; 6 7const CreateHandsOn = () => { 8 9 const [state, dispatch] = useReducer(handsOnReducer, []) 10 const [title, setTitle] = useState(""), 11 [description, setDescription] = useState(""), 12 [tags, setTags] = useState(""), 13 [url, setUrl] = useState(""); 14 15 16 return ( 17 <section> 18 <h2 className="u-text__headline u-text-center">商品登録、編集</h2> 19 <div className="c-section-container"> 20 <TextInput 21 fullWidth={true} label={"タイトル"} multiline={false} 22 onChange={e => setTitle(e.target.value)} rows={1} value={title} type={"text"} 23 /> 24 <TextInput 25 fullWidth={true} label={"説明"} multiline={true} 26 onChange={e => setDescription(e.target.value)} rows={5} value={description} type={"text"} 27 /> 28 <TextInput 29 fullWidth={true} label={"タグ名"} multiline={false} 30 onChange={e => setTags(e.target.value)} rows={1} value={tags} type={"text"} 31 /> 32 <TextInput 33 fullWidth={true} label={"URL"} multiline={false} 34 onChange={e => setUrl(e.target.value)} rows={1} value={url} type={"text"} 35 /> 36 <div className="module-spacer--margin-large"/> 37 <div className="u-text-center"/> 38 <Button variant="contained" color="primary" onInput={() => dispatch(saveHandsOn( title, description, tags, url))}>ハンズオン作成</Button> 39 </div> 40 </section> 41 ) 42} 43 44export default CreateHandsOn 45 46

operation

1import {db} from '../../firebase/index'; 2import {useRouter} from 'next/router' 3import {CREATE_HANDSON} from '../actions' 4 5const handsOnRef = db.collection('handsOn') 6 7 8export const saveHandsOn = (id, title, description, url, tags) => { 9 return async () => { 10 const timestamp = firebase.firestore.Timestamp.now(); 11 const router = useRouter() 12 13 const data = { 14 type: CREATE_HANDSON, 15 title: title, 16 description: description, 17 tags: tags, 18 url: url, 19 updated_at: timestamp 20 } 21 22 if (id === "") { 23 const ref = handsOnRef.doc() 24 data.created_at = timestamp; 25 id = ref.id; 26 data.id = id; 27 } 28 29 return handsOnsRef.doc(id).set(data) 30 .then(() => { 31 router.push('/') 32 }).catch((error) => { 33 throw new Error(error) 34 }) 35 } 36}

reducer

1const handsOnReducer =(state = [], action ) => { 2 switch (action.type) { 3 case 'CREATE_HANDSON': 4 const handsOn = {title: action.title, description: action.description, tag: action.tag, url: action.url } 5 const length = state.length 6 const id = length === 0? 1 : state[length - 1].id + 1 7 return [...state , {id, ...handsOn}] 8 default: "" 9 return state 10 } 11} 12export default handsOnReducer

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問